1. 程式人生 > >linux SCP免密傳輸檔案

linux SCP免密傳輸檔案

1 帶密碼的scp傳輸

從client端傳輸檔案到server端。

client端傳送檔案到指定ip的目錄下:


輸入密碼後,檢視server端是否接收到檔案:


2 在client端生成金鑰對


/usr/local/app/.ssh路徑即為: ~/.ssh

3 在client端將生成的公鑰拷貝到server端的~/.ssh目錄下

如果~/.ssh目錄不存在,則建立該目錄

拷貝前只有兩個檔案:


拷貝檔案:


拷貝後server下的檔案:


最好是把id_rsa.pub拷貝到server中的目錄下,再追加到authorized_keys檔案中,如果只拷貝id_rsa.pub裡面的內容,可能會出現拷貝多了字元或少了字元的錯誤,導致無法無密傳輸。

如果該資料夾下無authorized_keys,則建立該檔案,並將剛剛傳過來的id_rsa.pub新增到該檔案的後面


4 檢驗無密傳輸

client無密傳送檔案:


server端接收到的檔案:


5 scp與ssh的關係

SCP是Secure Copy的簡稱,是用來與遠端主機之間進行資料傳輸的協議,相當於經過加密的Copy命令。SCP資料傳輸使用 ssh協議,並且和ssh 使用相同的認證方式,提供相同的安全保證 。 根據實際需要,scp進行驗證時會要求你輸入密碼或口令。

不管SCP還是SFTP,都是SSH的功能之一,也都是使用SSH協議來傳輸檔案的。

6 ssh無密登入原理分析



至此我們可以知道,$HOME目錄即為/usr/local/app,並且很多系統未指定解壓路徑時,由crontab解壓的檔案會放到$HOME目錄下面。

嘗試ssh登入:


可以看出重127.0.0.1的機器登入到了25機器上。

登入時,我們沒有使用使用者名稱,原因如下:


7 參考文章:

(1) scp 免密文章

https://www.jianshu.com/p/b96ca7e5a8f6

https://blog.csdn.net/xyang81/article/details/51477925

https://cloud.tencent.com/developer/article/1042350

(2) ssh原理文章

http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html