使用ssh無密碼登入
ssh 是一個專為遠程登入工作階段和其他網路服務提供安全性的協議。預設狀態下ssh連結是要求輸入密碼認證的,可以通過添加系統認證(即公開金鑰-私密金鑰)的修改,修改後系統間切換可以避免密碼輸入和ssh認證。以下將建立過程簡單介紹下。
1.使用ssh-keygen建立公匙/私匙對
ssh-keygen –tdsa -C jibo.tiger@gmail.com –f ~/.ssh/jibo.tiger@gmail.com
過程中,可能會要求輸入密碼,為了ssh訪問過程無需密碼,可以直接斷行符號。
2. 查看公匙/私匙對
ls ~/.ssh
jibo.tiger@gmail.com jibo.tiger@gmail.com.pub config
可以發現 ssh目錄下的兩枚key files
其中jibo.tiger@gmail.com.pub為公匙,jibo.tiger@gmail.com為私匙
4.將公匙複製到伺服器主機上
scp jibo.tiger@gmail.com.pub hostname@i:~/.ssh/jibo.tiger@gmail.com.pub
5.添加公匙到服務主機上的信任
cat jibo.tiger@gmail.com.pub >>authorized_keys
not:4,5步可以由命令ssh-copy-id一步到位
ssh-copy-id -i jibo.tiger@gmail.com.pub user@ip
6.設定檔案和目錄許可權:
設定authorized_keys許可權
$ chmod 600 authorized_keys
設定.ssh目錄許可權
$ chmod 700 -R .ssh
總結注意事項
1、檔案和目錄的許可權千萬別設定成chmod 777.這個許可權太大了,不安全,數位簽章也不支援。
2、產生的rsa/dsa簽名的公開金鑰是給對方機器使用的。這個公開金鑰內容還要拷貝authorized_keys
3、linux之間的訪問直接 ssh hostname@ip。如果不指定hostname則預設使用本地主機名稱。
4、某個機器產生自己的RSA或者DSA的數位簽章,將公開金鑰給目標機器,然後目標機器接收後設定相關許可權(公開金鑰和authorized_keys許可權),這個目標機就能被產生數位簽章的機器無密碼訪問了