背景: 有時候我們在兩個主機之間復制文件的時候熙掺,提示輸入密碼,很不方便溃卡,那如何免密碼復制呢溢豆?,就是使用通過linux公鑰和秘鑰瘸羡,建立雙機信任關系漩仙。
ssh免密碼的要點 :
你想免密碼登陸到哪個主機哪個用戶, 就把你自己的公鑰文件內容追加到遠程主機對應用戶下的authorized_keys文件中(對面可能沒有這個文件犹赖,創(chuàng)建即可)队他。
- 生成秘鑰:ssh-keygen —身份驗證密鑰的生成,管理和轉換
[root@node1 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa #生成rsa;-t dsa加密算法峻村;-f文件名:指定密鑰文件的文件名麸折;
- 實現(xiàn)本地linux 服務器免密登陸遠程linux服務器10.15.0.99(本地公鑰放到遠程authorized_keys文件中):
ssh-copy-id -p 22 -i ~/.ssh/id_rsa.pub root@10.15.0.99 #復制本地公鑰到遠程服務器;在10.15.0.99的 ~/.ssh/目錄下生成authorized_keys文件粘昨,其內容為本地公鑰
- 實現(xiàn)遠程服務器192免密登陸本地windows主機(將遠程公鑰放到本地authorized_keys文件中垢啼,windows本地不會建立authorized_keys文件窜锯,自己創(chuàng)建)
在本地建立authorized_keys文件,其內容為遠程服務easyci@192.168.10.8:/home/easyci/.ssh 的公鑰(id_rsa.pub)內容 - 實現(xiàn)本地windows主機免密登陸遠程服務器(將本地公鑰放到遠程文件中)
(windows本地無法執(zhí)行ssh-copy-id命令)
傳輸本地公鑰到遠程服務器
scp ~/.ssh/id_rsa.pub easyci@192.168.10.8
清除authorized_keys文件的內容(可以不用操作)
將id_rsa.pub文件的內容復制到authorized_keys的末尾
-
測試是否能免密登陸
- 注意:
- 2和3步都執(zhí)行了芭析,就叫做互信锚扎;
- 如果遠程主機的端口非22端口,需要指定-p port選項馁启。
- ssh-copy-id是由openssh-clients包提供驾孔,沒有這個命令可以安裝這個包。
- centos6,7使用ssh-copy-id的時候可以不用指定-i選項进统,centos5必須指定的助币。
- 將公鑰拷貝到服務器的~/.ssh/authorized_keys文件中方法有如下幾種:
1、將公鑰通過scp拷貝到服務器上螟碎,然后追加到~/.ssh/authorized_keys文件中眉菱,這種方式比較麻煩。scp -P 22 ~/.ssh/id_rsa.pub user@host:~/掉分。
2俭缓、通過ssh-copy-id程序,就是我演示的方法酥郭,ssh-copyid user@host即可
3华坦、可以通過cat ~/.ssh/id_rsa.pub | ssh -p 22 user@host ‘cat >> ~/.ssh/authorized_keys’,這個也是比較常用的方法不从,因為可以更改端口號惜姐。
windows重啟ssh:net stop sshd,net start sshd
linux重啟ssh:service sshd restart 椿息, systemctl restart sshd.service
windows本地的ssh地址
windows10 自帶的有
- scp
- sftp
- ssh
- ssh-add
- ssh-agent
- ssh-keygen
- ssh-keyscan
路徑是 C:\Windows\System32\OpenSSH
參考資料:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_023_sshgenkey.html
https://www.cnblogs.com/wenxingxu/p/9597307.html