一、使用"ssh"命令,登錄訪問遠程服務器
Linux是一個支持多用戶操作的系統,在同一時刻允許多個用戶同時訪問系統,共享系統提供的服務。那么用戶如何從不同的機器上訪問同一台Linux服務器呢?此時就需要借助於SSH客戶端,來進行用戶登錄和訪問系統。
查看"man ssh"在線文檔,"ssh"命令描述信息如下:
查看"ssh"在線文檔可知,假設遠程服務器ip地址為:192.168.100.36,遠程用戶名為:newbie,則訪問遠程服務器的命令如下:
ssh -l newbie 192.168.100.36
二、基於服務器間密鑰的方式,實現"ssh"遠程免密碼登錄
默認情況下,通過“ssh”客戶端來訪問遠程服務器時,每次都要輸入用戶密碼(在經常訪問服務器時,此種體驗讓人很不爽)。實際上"ssh"可以實現免密碼登錄,實現的最簡單的方法是創建一個公鑰/私鑰對,以此來驗證服務器的有效性,替代密碼驗證。
注意:免密登錄也不是萬能的。免密登錄時,從一台【主機A】的用戶userA,使用【主機B】的用戶userB來登錄到【主機B】,此時存在着嚴格的用戶對應關系。基於密鑰免密登陸的實現步驟如下:
1、在客戶端【主機A】生成一對密鑰(公鑰/私鑰)
基於空口令生成一個新的ssh密鑰,以實現無密碼登錄,執行命令如下: ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
參數說明: -t 加密算法類型,這里是使用rsa算法 -P 指定私鑰的密碼,不需要可以不指定 -f 指定生成秘鑰對保持的位置
2、客戶端【主機A】,使用"ssh-copy-id"命令,將客戶端【主機A】的公鑰,發送個服務端【主機B】
注:經過ssh-copy-id后接收公鑰的服務端會把公鑰追加到服務端對應用戶的$HOME/.ssh/authorized_keys文件中
ssh-copy-id userB@serverB
#注:執行此命令時,需要輸入userB的登陸密碼。
3、客戶端【主機A】,使用“ssh”命令訪問服務器端【主機B】,進行登錄操作
ssh -l userB serverB
4、服務端根據客戶端的用戶名和主機名查找對應的公鑰,將一個隨機的字符串用該公鑰加密后發送給客戶端
5、客戶端用自己的私鑰進行解密收到的字符串,並將解密后的字符串發送給服務端
6、服務端對比發送出去的和接收到的字符串是否相同,如果相同,則登錄成功。
三、設置“ServerAliveInterval”參數,保持SSH客戶端的長鏈接
用ssh連接服務器時,過段時間不用, 需要恢復一下斷開的連接, 原因是NAT防火牆喜歡對空閑的會話進行超時處理,以確保它們狀態表的干凈和內存的低占用率,因為 長時間保持連接, 會長期占用部分系統資源, 為了節省系統資源,NAT防火牆就會把長時間的ssh連接斷掉;頻繁重連ssh總歸是有些麻煩,下邊是我對部分ssh工具解決方法:
使用命令參數進行ssh連接時加一個參數 -o ServerAliveInterval=30 (客戶端主動向服務端請求響應的間隔為30s)來保持活動狀態。
ssh -l 登錄用戶名 -o ServerAliveInterval=30 服務器地址
四、服務器間,遠程拷貝命"scp"
scp工具,是基於ssh遠程安全登錄的,可以將主機A上的文件或目錄,拷貝給主機B並且可以改名字,也可以將主機B上的文件或目錄下載到主機A中,同時也支持修改文件名。
1、遠程拷貝文件
scp 本機文件 user@host:路徑/
注:將bigdata1上的/etc/profile文件拷貝到bigdata2的根目錄下 scp /etc/profile root@bigdata2:/
注:將bigdata1上的/etc/profile文件拷貝到bigdata2的根目錄下,並改名為profile.txt scp /etc/profile root@bigdata2:/profile.txt
2、遠程拷貝目錄
scp -r 本機目錄 user@host:路徑/ 注:將bigdata1上的/bin目錄拷貝到bigdata2的根目錄下 scp -r /bin root@bigdata1:/home/ (-r 表示遞歸)
3、下載文件到本地
scp user@host:文件名 本地目錄 注:將bigdata2上的/profile下載到本地並改名為profile.txt scp root@bigdata2:/profile ./profile.txt
4、下載目錄到本地
scp -r user@host:文件名 本地目錄 注:將bigdata2上的/bin下載到本地並改名為bin.bak scp -r root@bigdata2:/home/bin ./bin.bak
轉載說明:本篇博客的“第二節”、“第四節”轉載自網絡。 原文標題:SSH遠程登錄和SSH免密碼登錄 原文地址:https://blog.csdn.net/m0_37822234/article/details/82494556