之前遇到的問題位喂,百度上魚龍混雜,很多解決辦法并不明確挂据,所以在簡書上記錄
場景
A客戶端 通過SSH連接上 B服務(wù)器
步驟:
1. A客戶端生成密匙
ssh-keygen -t rsa
生成密匙對id_rsa(私鑰)宾肺、id_rsa.pub(公鑰)运挫,默認(rèn)存貯在 ~/.ssh目錄
2. 將A客戶端公鑰復(fù)制到B服務(wù)器
? ? ? ? 方法一: 將id_ras.pub中的內(nèi)容直接復(fù)制到B服務(wù)器(~/.ssh/)中的authorized_keys中,文件不存在則創(chuàng)建蚓哩,存在則在末尾追加
? ? ? ? 方法二: ssh-copy-id
? ? ? ? ? ? ? ? ? ? 命令:ssh-copy-id -i ~/.ssh/id_rsa.pub ?user@remote_ip
? ? ? ? 方式三:scp
? ? ? ? ? ? ? ? ? ? 命令:scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys
3.B服務(wù)器 修改authorized_keys權(quán)限
chmod ? 644 ?~/.ssh/authorized_keys
保證authorized_keys只對其所有者有讀寫權(quán)限,其他人不允許有寫的權(quán)限
4.A客戶端 編輯config文件(不存在創(chuàng)建)
Host ? server ? ? ? ?#別名上渴,域名縮寫
HostName ?sever.com? ? ? ? #完整的域名
User ? ? ? ? ? username ? ? ? ?#登錄該域名使用的賬號名
IdentityFile ~/.ssh/my_rsa ?#私鑰文件的路徑
5.A客戶端連接
ssh server
常見錯誤
1.ssh key Key is invalid
密鑰錯誤岸梨,或者配置錯誤
2.配置ssh后仍需要輸入密碼才能登錄
這個問題常見與服務(wù)器端,有的系統(tǒng)安裝openssh-server后并沒有生成.ssh文件稠氮,若用戶手動生成則需要添加標(biāo)簽曹阔,沒有添加標(biāo)簽,則需要輸入登錄密碼隔披,手動生成的.ssh目錄需要修復(fù)標(biāo)簽(selinux保護(hù)造成赃份,關(guān)閉selinux也可以解決問題,但不推薦關(guān)閉)。
restorecon -r -vv /root/.ssh (本人嘗試沒反應(yīng)抓韩,但國外友人使用能解決)
3.使用ssh-copy-id 提示 Permission denied, please try again.
1.B服務(wù)器配置sshd_config(/etc/ssh/sshd_config)
PasswordAuthentication yes
2.重啟sshd
service sshd restart
3.ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
注意: 這里不指定USER則為本機(jī)的用戶