之前遇到的問(wèn)題,百度上魚(yú)龍混雜,很多解決辦法并不明確,所以在簡(jiǎn)書(shū)上記錄
場(chǎng)景
A客戶端 通過(guò)SSH連接上 B服務(wù)器
步驟:
1. A客戶端生成密匙
ssh-keygen -t rsa
生成密匙對(duì)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只對(duì)其所有者有讀寫(xiě)權(quán)限,其他人不允許有寫(xiě)的權(quán)限
4.A客戶端 編輯config文件(不存在創(chuàng)建)
Host ? server ? ? ? ?#別名,域名縮寫(xiě)
HostName ?sever.com? ? ? ? #完整的域名
User ? ? ? ? ? username ? ? ? ?#登錄該域名使用的賬號(hào)名
IdentityFile ~/.ssh/my_rsa ?#私鑰文件的路徑
5.A客戶端連接
ssh server
常見(jiàn)錯(cuò)誤
1.ssh key Key is invalid
密鑰錯(cuò)誤,或者配置錯(cuò)誤
2.配置ssh后仍需要輸入密碼才能登錄
這個(gè)問(wèn)題常見(jiàn)與服務(wù)器端,有的系統(tǒng)安裝openssh-server后并沒(méi)有生成.ssh文件,若用戶手動(dòng)生成則需要添加標(biāo)簽,沒(méi)有添加標(biāo)簽,則需要輸入登錄密碼,手動(dòng)生成的.ssh目錄需要修復(fù)標(biāo)簽(selinux保護(hù)造成,關(guān)閉selinux也可以解決問(wèn)題,但不推薦關(guān)閉)。
restorecon -r -vv /root/.ssh (本人嘗試沒(méi)反應(yīng),但國(guó)外友人使用能解決)
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ī)的用戶