Access another server with Linux - ssh

"Make some note for how to use ssh in linux."

Posted by Nero on Friday, August 31, 2018 |  668 words |  2 minutes
“學習如何透過 ssh 登入遠端主機!”

指令說明

ssh 命令是 openssh 套件中的客戶端連接工具,可以給予 ssh 加密協議實現安全的遠程登錄伺服器。

語法

ssh [選項][參數]

選項

-1:強制使用ssh協議版本1;
-2:強制使用ssh協議版本2;
-4:強制使用IPv4地址;
-6:強制使用IPv6地址;
-A:開啟認證代理連接轉發功能;
-a:關閉認證代理連接轉發功能;
-b:使用本機指定地址作為對應連接的源ip地址;
-C:請求壓縮所有數據;
-F:指定ssh指令的配置文件;
-f:後台執行ssh指令;
-g:允許遠程主機連接主機的轉發端口;
-i:指定身份文件;
-l:指定連接遠程服務器登錄用戶名;
-N:不執行遠程指令;
-o:指定配置選項;
-p:指定遠程服務器上的端口;
-q:靜默模式;
-X:開啟X11轉發功能;
-x:關閉X11轉發功能;
-y:開啟信任X11轉發功能。

範例

# ssh 用戶名@遠程服務器地址
ssh user1@172.24.210.101
# 指定端口
ssh -p 2211 root@140.206.185.170

# ssh 大家族
ssh user@ip -p22 # 默認用戶名為當前用戶名,默認端口為 22
ssh-keygen # 為當前用戶生成 ssh 公鑰 + 私鑰
ssh-keygen -f keyfile -i -m key_format -e -m key_format # key_format: RFC4716/SSH2(default) PKCS8 PEM
ssh-copy-id user@ip:port # 將當前用戶的公鑰複製到需要 ssh 的服務器的 ~/.ssh/authorized_keys,之後可以免密登錄

補充說明

透過以下語法設定 .ssh/config

vi ~/.ssh/config

設定內容如下,透過 OpenSSH 的 ProxyCommand 選項來連接主機B。

Host hosta
    User userfoo
    Hostname 123.123.123.123
    IdentityFile ~/secret/SecretOrKey.pem
 
Host hostb
    User userbar
    Hostname 192.168.1.1
    Port 2222
    ProxyCommand ssh -q -W %h:%p hosta
    IdentityFile ~/secret/SecretOrKey.pem

透過這個設定為本機可以直接連接 hosta,當 ssh hostb 時,將會先連結 hosta 然後透過 ProxyCommand 連入內部 192.168.1.1,這樣的好處是我們不需要另外記得這些煩雜的連線設定,只需要 ssh [alias sever name],便可快速的登入遠端主機。

參考資料


comments powered by Disqus