linux下設置或替換登錄密鑰

客戶端首先在服務器註冊自己的公鑰 在通過私鑰進行登錄驗證 服務器會根據登錄用戶來用客戶端註冊的公鑰進行匹配 匹配通過放行否則拒絕
1.通過ssh-keygen -t rsa -f 私鑰文件 -C "email" 默認私鑰匙文件~/.ssh/id_rsa 同時在該目錄下會生成與之配對的公鑰後綴爲pub
     生成密鑰時會提示你輸入密碼  直接回車就可以 如果輸入了密碼 那麼ssh登錄時也要輸入相同的密碼方可登錄
     當有多臺服務器且每臺服務器ssh鏈接時用獨立的密鑰 又不想通過-i指定密鑰文件 那麼就配置個config吧
     ~/.ssh/config
Host *.vip.com
IdentityFile ~/.ssh/id_rsa.vip

如果需要增加用戶的話
[root@VM_57_85_centos ~]# useradd vip
[root@VM_57_85_centos ~]# passwd vip
[root@VM_57_85_centos ~]# su vip
[vip@VM_57_85_centos ~]$ ssh-keygen -t rsa //會生成.ssh目錄 和公私鑰 不會生成authorized_keys文件 需自己創建
[vip@VM_57_85_centos ~]$ touch authorized_keys
[vip@VM_57_85_centos ~]$ chmod 600 authorized_keys

     
2.通過scp上傳公鑰到服務器
$ scp -P 8888 -i ~/key/app_server_access.pub ~/.ssh/id_rsa.pub  [email protected]:~/.ssh/id_rsa_boss.pub
//如果服務器報錯沒有.ssh這個目錄的話 上傳到~目錄
$ scp -P 8888 -i ~/key/app_server_access.pub ~/.ssh/id_rsa.pub  [email protected]:~/id_rsa_boss
id_rsa.pub 100% 401 0.4KB/s 00:00
scp [參數] localFile remoteFile 或 scp [參數] remoteFIle localFile
-P port               ssh端口號
-i identity_file   私鑰文件 ssh和scp命令首先使用私鑰文件如果密鑰文件裏的密鑰不匹配  使用~/.ssh/id_rsa進行匹配 所以測試時需要注意
-P和-i 必須寫在 localFile的前面 否則報錯
3.ssh到服務器
$ ssh -p 8888 [email protected] -i ~/key/app_server_access
Last login: Mon Jan 1 19:30:54 2018 from 106.121.66.246
4.進入服務器密鑰目錄沒有該目錄則創建

[vip@VM_57_85_centos ~]$ mkdir .ssh
[vip@VM_57_85_centos rootx]$ chmod 700 .ssh
[vip@VM_57_85_centos ~]$ cd ~/.ssh
[vip@VM_57_85_centos .ssh]$
5.查看是否存在authorized_keys文件沒有則創建該文件
   該文件存儲着允許訪問服務器的密鑰 當客戶通過私鑰登或公鑰錄時拿該文件裏的公鑰匹配驗證 驗證通過允許登錄
6.把上傳的公鑰添加到authorized_keys文件末尾

[vip@VM_57_85_centos .ssh]$ touch authorized_keys
[vip@VM_57_85_centos .ssh]$ chmod 600 authorized_keys
[vip@VM_57_85_centos .ssh]$ mv id_rsa_boss.pub ssh
[vip@VM_57_85_centos .ssh]$ cat id_rsa_boss.pub >> authorized_keys
//查看authorized_keys最後一行 也就是剛纔添加的key 其實只要沒報錯  沒必要看
[vip@VM_57_85_centos .ssh]$ tail -1 authorized_keys
7.使用新密鑰登陸
//測試ssh聯通性
[vip@VM_57_85_centos .ssh]$ rm -f id_rsa_boss.pub //測試都通過了服務器上該文件也不需要了
$ ssh -p 1221 [email protected]
Last login: Mon Jan 1 19:45:24 2018 from 106.121.66.246
如果登錄不成功查看.ssh權限是不是700 authorized_keys權限是不是600 公鑰是不是錯的 用記事本去掉自動換行 確保公鑰字串無空格且只有一行
如果還是登不了 管你有沒有病 ssh-agent上起  在不行從頭來過只要不進入死循環就ok了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章