scp免密碼傳送文件


一、單向

ssh-keygen -t rsa

單向無密碼訪問遠程服務器操作比較簡單,比如服務器A需要無密碼訪問服務器B(A–>B),那么只需要在服務器A生成密鑰對,將生成的公鑰上傳到服務器B的相關用戶目錄下的.ssh目錄中(沒有的話手動創建,注意,它的目錄權限是700),並將公鑰文件名稱改為authorized_keys(注意,這個文件的權限應該是644),請注意.ssh目錄及authorized_keys文件的權限,權限不符,會使配置無效。

二、雙向

將本機的id_rsa.pub文件中的內容加到對方的authorized_keys文件中即可。


三、遇到的問題

有時候按步驟設置好了,ssh時仍然提示需要輸入密碼,此時可以用ssh ip -v 來跟蹤,或者在文件/var/log/secure中查看對應的日志。

例如我設置ssh無密碼連接Route主機后,仍然提示輸入密碼,經過查看secure日志,發現如下信息:

Mar 6 14:00:11 Route sshd[10353]: Authentication refused: bad ownership or modes for directory /home/tianyc
Mar 6 14:01:06 Route sshd[10354]: Connection closed by 10.1.1.1
Mar 6 14:01:42 Route su: pam_unix(su:session): session opened for user root by root(uid=201301)

查看該目錄權限,被設置成了777,修改為755后即正常:
[root@Route /]# cd home/
[root@Route home]# ll
總用量 108
drwxr-xr-x. 2 root root 4096 1月 21 23:52 lvs
drwxrwxrwx. 6 tianyc NEU 4096 3月 6 10:57 tianyc
drwx------. 3 wensong wensong 4096 1月 21 17:24 wensong
[root@Route home]# chmod 755 tianyc
[root@Route home]# ll
總用量 108
drwxr-xr-x. 2 root root 4096 1月 21 23:52 lvs
drwxr-xr-x. 6 tianyc NEU 4096 3月 6 10:57 tianyc
drwx------. 3 wensong wensong 4096 1月 21 17:24 wensong
[root@Route home]# exit
exit
[tianyc@Route /]$ ssh route
Last login: Wed Mar 6 11:14:29 2013 from route
[tianyc@Route ~]$

在Linux環境下,兩台主機之間傳輸文件一般使用scp命令,通常用scp命令通過ssh獲取對方linux主機文件的時候都需要輸入密碼確認。

不過通過建立信任關系,可以實現不輸入密碼。

這里假設A的IP:192.168.10.1

B的IP:192.168.10.2

需要從A免密碼輸入復制文件至B。


1. 在主機A上執行如下命令來生成配對密鑰: 
ssh-keygen -t rsa 
按照提示操作,注意,不要輸入passphrase。提示信息如下 
Generating public/private rsa key pair. 
Enter file in which to save the key (/root/.ssh/id_rsa):  
Enter passphrase (empty for no passphrase):  
Enter same passphrase again:  
Your identification has been saved in /root/.ssh/id_rsa. 
Your public key has been saved in /root/.ssh/id_rsa.pub. 
The key fingerprint is: 
ff:8e:85:68:85:94:7c:2c:46:b1:e5:2d:41:5c:e8:9b  root@localhost.domain 

2. 將 .ssh 目錄中的 id_rsa.pub 文件復制到 主機B 的 ~/.ssh/ 目錄中,並改名為  authorized_keys。 
scp .ssh/id_rsa.pub 192.168.10.2:/root/.ssh/authorized_keys 

以后從A主機scp到B主機就不需要密碼了。

3.使用此方法需要注意:復制的兩台計算機需要用相同的賬戶名,這里都是用的root。為了安全起見,需要在兩台機器中創建相同的賬號,然后在A上用su命令切換至賬號下,執行第1步,第二步中復制文件時可能.ssh目錄並不存在,需要手動創建。

在第2步中如果機器中已經存在authorized_keys文件,則需注意,這個文件可以包含多個SSH驗證信息,這時可用 cat >>命令將驗證文件內容附加上去。

比如復制到scp .ssh/id_rsa.pub 192.168.10.2:/root/.ssh/a.pub

然后執行cat ~/.ssh/a.pub >> ~/.ssh/authorized_keys

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM