前言:SSH(全稱 Secure Shell)是一種加密的網(wǎng)絡(luò)協(xié)議钱骂。使用該協(xié)議的數(shù)據(jù)將被加密夺艰,即使在傳輸中間數(shù)據(jù)泄漏捍岳,也可以確保沒有人能讀取出有用信息富寿。SSH 是基于客戶-服務(wù)模式的。 當(dāng)你想安全的遠(yuǎn)程連接到主機(jī)锣夹,可中間的網(wǎng)絡(luò)(比如因特網(wǎng))并不安全页徐,通常這種情況下就會(huì)使用 SSH。
****安裝ssh客戶端****
sudo apt-get install ssh
或者
sudo apt-get install openssh-client #推薦
****安裝ssh服務(wù)端****
sudo apt-get install openssh-server
****改變ssh服務(wù)器端的狀態(tài)****
sudo service ssh start #開啟
sudo service ssh stop #停止
sudo service ssh restart #重啟
****SSH連接常用命令****
ssh 172.16.168.111 #無參數(shù)運(yùn)行ssh
ssh alic@172.16.168.111 #指定用戶
ssh alic@172.16.168.111 -p 22 #指定端口
ssh -i privateKey.file alic@172.16.168.111 #引用秘鑰文件
****修改sshd_config配置文件****
sudo nano /etc/ssh/sshd_config
****SSH基礎(chǔ)設(shè)置****
- Port 22
端口設(shè)置:SSH 預(yù)設(shè)使用 22 這個(gè) port银萍,您也可以使用多的 port
- Protocol 2,1
版本設(shè)置:選擇的 SSH 協(xié)議版本变勇,可以是 1 也可以是 2
- ListenAddress 0.0.0.0
監(jiān)聽的主機(jī)適配卡設(shè)置:默認(rèn)為任何回環(huán)地址,ListenAddress:192.168.0.100
- PrintMotd no
登入后是否顯示出一些信息呢贴唇?例如上次登入的時(shí)間搀绣、地點(diǎn)等,預(yù)設(shè)是 yes 戳气,但是豌熄,如果為了安全,可以考慮改為 no 物咳!
- PrintLastLog yes
顯示上次登入的信息锣险!可以啊览闰!預(yù)設(shè)也是 yes 芯肤!
- KeepAlive yes
一般而言,如果設(shè)定這項(xiàng)目的話压鉴,那么 SSH Server 會(huì)傳送KeepAlive 的訊息給 Client 端崖咨,以確保兩者的聯(lián)機(jī)正常!在這個(gè)情況下油吭,任何一端死掉后击蹲, SSH 可以立刻知道!而不會(huì)有僵尸程序的發(fā)生婉宰!
- UsePrivilegeSeparation yes
使用者的權(quán)限設(shè)定項(xiàng)目,就設(shè)定為 yes
- MaxStartups 10
同時(shí)允許幾個(gè)尚未登入的聯(lián)機(jī)畫面歌豺?當(dāng)我們連上 SSH ,但是尚未輸入密碼時(shí),這個(gè)時(shí)候就是我們所謂的聯(lián)機(jī)畫面啦心包!在這個(gè)聯(lián)機(jī)畫面中类咧,為了保護(hù)主機(jī),所以需要設(shè)定最大值,預(yù)設(shè)最多十個(gè)聯(lián)機(jī)畫面痕惋,而已經(jīng)建立聯(lián)機(jī)的不計(jì)算在這十個(gè)當(dāng)中
- PidFile /var/run/sshd.pid
可以放置 SSHD 這個(gè) PID 的檔案区宇!左列為默認(rèn)值
- LoginGraceTime 600
當(dāng)使用者連上 SSH server 之后,會(huì)出現(xiàn)輸入密碼的畫面,在該畫面中值戳,在多久時(shí)間內(nèi)沒有成功連上 SSH server ,時(shí)間為秒议谷!
- Compression yes
是否允許使用壓縮指令
- HostKey /etc/ssh/ssh_host_key
SSH version 1 使用的私鑰
- HostKey /etc/ssh/ssh_host_rsa_key
SSH version 2 使用的 RSA 私鑰
- HostKey /etc/ssh/ssh_host_dsa_key
SSH version 2 使用的 DSA 私鑰
- KeyRegenerationInterval 3600
由前面聯(lián)機(jī)的說明可以知道, version 1 會(huì)使用
- PermitRootLogin no
是否允許 root 登入堕虹!預(yù)設(shè)是允許的柿隙,但是建議設(shè)定成 no!
- UserLogin no
在 SSH 底下本來就不接受 login 這個(gè)程序的登入鲫凶!
- StrictModes yes
當(dāng)使用者的 host key 改變之后,Server 就不接受聯(lián)機(jī)衩辟,
可以抵擋部分的木馬程序螟炫!
- RSAAuthentication yes
是否使用純的 RSA 認(rèn)證!僅針對(duì) version 1
- PubkeyAuthentication yes
是否允許 Public Key 艺晴?當(dāng)然允許啦昼钻!只有 version 2
- AuthorizedKeysFile .ssh/authorized_keys
上面這個(gè)在設(shè)定若要使用不需要密碼登入的賬號(hào)時(shí),那么那個(gè)
賬號(hào)的存放檔案所在檔名封寞!
****SSH認(rèn)證部分****
- RhostsAuthentication no
本機(jī)系統(tǒng)不止使用 .rhosts 然评,因?yàn)閮H使用 .rhosts 太
不安全了,所以這里一定要設(shè)定為 no 狈究!
- IgnoreRhosts yes
是否取消使用 ~/.ssh/.rhosts 來做為認(rèn)證碗淌!當(dāng)然是!
- RhostsRSAAuthentication no
這個(gè)選項(xiàng)是專門給 version 1 用的抖锥,使用 rhosts 檔案在
/etc/hosts.equiv配合 RSA 演算方式來進(jìn)行認(rèn)證亿眠!不要使用
- HostbasedAuthentication no
這個(gè)項(xiàng)目與上面的項(xiàng)目類似,不過是給 version 2 使用的磅废!
- IgnoreUserKnownHosts no
是否忽略家目錄內(nèi)的 ~/.ssh/known_hosts 這個(gè)檔案所記錄
的主機(jī)內(nèi)容纳像?當(dāng)然不要忽略,所以這里就是 no 啦拯勉!
- PasswordAuthentication yes
密碼驗(yàn)證當(dāng)然是需要的竟趾!所以這里寫 yes 啰!
- PermitEmptyPasswords no
若上面那一項(xiàng)如果設(shè)定為 yes 的話宫峦,這一項(xiàng)就最好設(shè)定
為 no 岔帽,這個(gè)項(xiàng)目在是否允許以空的密碼登入!當(dāng)然不許导绷!
- ChallengeResponseAuthentication yes
挑戰(zhàn)任何的密碼認(rèn)證山卦!所以,任何 login.conf
規(guī)定的認(rèn)證方式,均可適用账蓉!
- PAMAuthenticationViaKbdInt yes
是否啟用其它的 PAM 模塊枚碗!啟用這個(gè)模塊將會(huì)
導(dǎo)致 PasswordAuthentication 設(shè)定失效!
****關(guān)于使用者抵擋的設(shè)定項(xiàng)目****
- DenyUsers *
設(shè)定受抵擋的使用者名稱铸本,如果是全部的使用者肮雨,那就是全部擋吧!若是部分使用者箱玷,可以將該賬號(hào)填入怨规!例如下列!
- DenyUsers testDenyGroups test
與 DenyUsers 相同锡足!僅抵擋幾個(gè)群組而已波丰!