什么是SSH
SSH(Secure Shell)是一種提供網(wǎng)絡(luò)安全的傳輸協(xié)議。它保證了在網(wǎng)絡(luò)上的數(shù)據(jù)并非明文傳輸,目前使用SSH登錄遠(yuǎn)程終端已經(jīng)是通用方式较解。
SSH登錄時(shí)有兩種驗(yàn)證方式
- 基于密碼的安全驗(yàn)證束倍,它要求用戶(hù)在每次登錄服務(wù)器時(shí)輸入密碼,服務(wù)器端驗(yàn)證通過(guò)后即登錄成功齿诞。
- 基于密鑰的安全驗(yàn)證衡便,客戶(hù)端的公鑰會(huì)預(yù)先保存在服務(wù)器端卓缰,當(dāng)?shù)卿洉r(shí),服務(wù)器端會(huì)使用該公鑰做驗(yàn)證砰诵,如果驗(yàn)證成功征唬,用戶(hù)不需輸入密碼即完成登錄。
為了避免每次都輸入密碼這種重復(fù)性工作茁彭,我們選擇第二種方式進(jìn)行遠(yuǎn)程登錄总寒。
基于密鑰登錄的配置步驟
在本地終端生成密鑰對(duì)。
ssh-keygen // 加密方式默認(rèn)使用RSA理肺,可以通過(guò) “ssh-keygen -t 加密方式”
指定加密方式
生成過(guò)程中會(huì)詢(xún)問(wèn)設(shè)置密鑰對(duì)的保存位置和打開(kāi)密碼摄闸。按enter鍵使用默認(rèn)設(shè)置即可。此時(shí)會(huì)在"~/.ssh"
目錄下生成名為id_rsa
和id_rsa.pub
的私鑰文件和公鑰文件妹萨。
使用密碼登錄到服務(wù)器端年枕,將公鑰字符串copy到"~/.ssh/authorized_keys"文件內(nèi)。
vi ~/.ssh/authorized_keys //copy 公鑰字符串
如果.ssh目錄尚未建立乎完,需要先創(chuàng)建并且修改權(quán)限:
mkdir ~/.ssh
chmod 700 ~/.ssh
如果authorized_keys文件是新創(chuàng)建的熏兄,需修改文件權(quán)限
chmod 600 ~/.ssh/authorized_keys
驗(yàn)證是否設(shè)置成功
ssh username@server-ip
此時(shí)應(yīng)該能夠跳過(guò)輸入密碼的提示,直接登錄到遠(yuǎn)程終端树姨。如果仍然需要輸入密碼摩桶,最有可能的原因是上面第三步文件權(quán)限配置的有問(wèn)題。
配置服務(wù)器別名帽揪,使用別名代替ip地址
雖然經(jīng)過(guò)上面的配置硝清,我們不用在每次登錄時(shí)都輸入密碼。當(dāng)仍然需要我們輸入用戶(hù)名和服務(wù)器ip转晰。有沒(méi)有可能把這一步驟也省略呢芦拿?答案是肯定的,通過(guò)配置服務(wù)器別名的方式查邢,登錄時(shí)只需輸入別名即可蔗崎。
- 打開(kāi)~/.ssh/config文件,添加以下內(nèi)容:
Host server-alias # server-alias為SSH鏈接的服務(wù)器別名
HostName server-ip # 服務(wù)器地址
Port 22
User username # 服務(wù)器端用戶(hù)名
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa # 私鑰地址侠坎,默認(rèn)為 ~/.ssh/id_rsa
- 驗(yàn)證
以后即可通過(guò)以下命令登錄遠(yuǎn)程服務(wù)器
ssh server-alias
如果登錄未成功蚁趁,請(qǐng)仔細(xì)檢查每項(xiàng)的配置是否正確裙盾。
總結(jié)
經(jīng)過(guò)上述配置实胸,有效的簡(jiǎn)化了登錄操作他嫡,會(huì)為我們節(jié)省不少時(shí)間。更重要的是庐完,所有底層使用SSH的程序钢属,都因此而簡(jiǎn)化了操作步驟。比如:
用于傳輸文件的scp和rsync命令门躯。只需輸入:
scp file server-alias:/dir
如果服務(wù)器端上配置了git遠(yuǎn)程倉(cāng)庫(kù)淆党,只需輸入:
git clone server-alias:/git-repo
你會(huì)發(fā)現(xiàn)除了使用簡(jiǎn)易的別名代替了ip地址外,輸入密碼的步驟也被省略掉了讶凉!
作者:mr_franklin
鏈接:http://www.reibang.com/p/03effb53705c