一、基本命令操作
1.登錄遠程主機
ssh username@IP_Address
其中username為遠程主機用戶名,IP_Address為遠程主機登陸密碼,端口為默認的22端口,如需修改端口為其他需要參數來指定:
ssh -p 8888 user@192.168.1.102
二、SSH免密登錄
1.使用ssh公鑰私鑰方式進行ssh鏈接:
Step1:使用ssh-keygen命令生成對應的rsa密鑰對(命令執行后連續回車即可)
ssh-keygen -t rsa
如下圖所示為在~/.ssh/文件夾下生成的rsa密鑰對:
Step2:將ssh-keygen命令生成的公鑰拷貝到待免密登錄的目標機上
cd ~/.ssh/ ssh-copy-id -i id_rsa.pub ubuntu@192.x.x.x
這里由於我已經完成了拷貝,因此提示無需再次拷貝,拷貝過程中需要輸入對方主機的登陸密碼以完成公鑰的拷貝過程,拷貝完成后,可以在目標主機的~/.ssh/文件夾下面查看到對應的授權文件如下所示:
Step3:使用ssh命令連接目標主機
2.使用sshpass免密登錄
https://blog.csdn.net/weixin_42480153/article/details/104788790
三、SSH通過代理服務器跳轉連接遠程服務器
1. Linux下具體代理連接命令如下:
ssh -p port -o ProxyCommand="nc -x connect/4/5 -x proxy.net:port %h %p" user@server.net
上述命令參數解釋如下:
- -p port : 為ssh連接的遠程設備端口
- -o ProxyCommand="nc -x connect/4/5 -x proxy.net:port %h %p" : 為啟用代理服務的命令調用
- nc :為Linux代理連接工具
- -x connect/4/5 :指定代理連接協議類型 connect->HTTPS proxy / 4->SOCKS v.4 / 5->SOCKS v.5 (默認)
- -x proxy.net:port :設置代理服務器IP地址及端口號,如未設置則 SOCKETS 默認使用 1080 & HTTPS 默認使用 3128
- user@server.net :配置SSH目標服務器連接 HostName/IP_Address
也可以使用 SSH
配置文件
1. 使用vim打開ssh配置文件
sudo vim ~/.ssh/config
2. 增加如下兩行內容:以 nc
為例,如使用 Ncat
可以自行替換
Host * ProxyCommand nc -X 5 -x proxy.net:1080 %h %p
使用配置文件之后,就不需要在命令行中進行代理配置了
2. Windows下使用代理程序跳轉至目標機:
ssh -p 12345 -o ProxyCommand="R:\Program Files (x86)\Nmap\ncat.exe --proxy-type http --proxy 188.188.3.212:808 %h %p" nvidia@123a456b78.zicp.vip
這里使用了ncat.exe作為Windows下的跳轉工具。關於ncat.exe以及Linux下nc工具的使用,參考這里。關於VSCode的相關配置在其他類別博客下的工具箱中!
Reference:
1.設置密鑰對之后登錄仍然需要登陸密碼問題:https://blog.csdn.net/b_x_p/article/details/78534423
2.主從機密鑰對免密登錄設置:https://www.cnblogs.com/mhl1003/p/9442898.html
3.使用sshpass命令來進行明文免密登錄:https://blog.csdn.net/weixin_42480153/article/details/104788790
4.使用代理服務器跳轉連接遠程Server:https://www.jianshu.com/p/f6990f3a52eb