一、解決連接被拒絕問題
在准備通過scp指令將本地文件傳輸到服務器的時候出現ssh: connect to host * port 22: Connection timed out 的問題。講解決過程記錄如下:
1. 首先輸入ssh localhost 指令查看ssh是否安裝和啟動,如果未啟動輸入service ssh start,如果未安裝輸入apt-get install openssh-server。
2. 運行ps -e | grep ssh指令查看sshd是否啟動,如果未啟動輸入service sshd start。
3. 倘若以上都不可以,檢查防火牆是否開啟。
二·、解決訪問被拒絕問題
使用scp命令准備向目標服務器傳輸文件,但是遇到Permission denied這個問題,意思就是拒絕訪問。解決如下:
1.方法一:修改目錄的訪問權限(一般)
2.方法二:傳輸到/tmp目錄下,不需要權限(差)
3.方法三:在Client的root和Server的root之間建立安全信任關系(優)
(1)在機器Client上root用戶執行ssh-keygen命令,生成建立安全信任關系的證書。
[root@Clientroot]# ssh-keygen -b 1024 -t rsa
Generatingpublic/private rsa key pair.
Enter file inwhich to save the key (/root/.ssh/id_rsa):
Enter passphrase(empty for no passphrase): <-- 直接輸入回車則無密碼
Enter samepassphrase again: <-- 直接輸入回車則無密碼
Youridentification has been saved in /root/.ssh/id_rsa.
Your public keyhas been saved in /root/.ssh/id_rsa.pub.
The key fingerprintis:
49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1croot@Client
[root@Clientroot]#
注意:在程序提示輸入passphrase時直接輸入回車,表示無證書密碼。
上述命令將生成私鑰證書id_rsa和公鑰證書id_rsa.pub,存放在用戶家目錄的.ssh子目錄中。
(2)將公鑰證書id_rsa.pub復制到機器Server的root家目錄的.ssh子目錄中,同時將文件名更換為authorized_keys。
[root@Client root]# scp -p .ssh/id_rsa.pub root@192.168.3.206:/root/.ssh/authorized_keysroot@192.168.3.206's password: <-- 輸入機器Server的root用戶密碼
id_rsa.pub 100% |**************************| 218 00:00
[root@Client root]#
在執行上述命令時,兩台機器的root用戶之間還未建立安全信任關系,所以還需要輸入機器Server的root用戶密碼。
經過以上2步,就在機器Client的root和機器Server的root之間建立安全信任關系。
三、使用說明
-r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f 若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制。
-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來查看連接 , 認證 , 或是配置錯誤 .
-P 選擇端口 . 注意 -p 已經被 rcp 使用 .