Mac 如何連接遠程伺服器 iTerm2可以以明文保存密碼,實現快速連接遠程伺服器,但是,密碼最好不要暴露在明文里。我們可以藉助更為通用的方法。 在Mac這樣的類UINX系統中,使用iTerm2這樣的終端工具(當然也可以使用Mac自帶的終端)連接遠程伺服器,邏輯是比較通暢的,不需要像Win那樣使用X ...
Mac 如何連接遠程伺服器
iTerm2可以以明文保存密碼,實現快速連接遠程伺服器,但是,密碼最好不要暴露在明文里。我們可以藉助更為通用的方法。
在Mac這樣的類UINX系統中,使用iTerm2這樣的終端工具(當然也可以使用Mac自帶的終端)連接遠程伺服器,邏輯是比較通暢的,不需要像Win那樣使用XShell等ssh連接管理工具(當然這樣的工具也很方便hhh,我在Mac端使用了Termius,感覺尚可)。
普通連接方法
如果正常在終端連接,SSH Client基本使用方法如下,隨後再輸入遠端伺服器的密碼:
ssh user@remote -p port
- user 是遠程伺服器上的用戶名,如果不指定,預設為本地機當前用戶
- remote是遠程伺服器地址,可能是IP,功能變數名稱等
- port是SSH Server監聽的埠,如果不指定,預設為22號埠
安裝OpenSSH Server
ssh user@remote -p port
ssh: connect to host remote port 22: Connection refused
如果出現上述消息,說明在遠程機器上沒有安裝 SSH Server,特別地,如果遠程機器運行的是 Ubuntu Desktop 系統,那麼預設是沒有安裝 SSH Server 的。如果有 sudo 許可權的話,可以執行下麵命令安裝:
sudo apt-get install openssh-server
免密登錄(劃重點)
免密登錄就是懶人要義!
接下來,我以local指代本地機,remote指代遠程機,手把手設置!
- 在local本地機中生成密鑰對:
ssh-keygen -t rsa -C 'youremail@example'
這裡是參照微軟具體的闡述(可略過):
ssh-keygen \
-m PEM \
-t rsa \
-b 4096 \
-C "azureuser@myserver" \
-f ~/.ssh/mykeys/myprivatekey \
-N mypassphrase
ssh-keygen
= 用於創建密鑰的程式
-m PEM
= 將密鑰的格式設為 PEM
-t rsa
= 要創建的密鑰類型,本例中為 RSA 格式
-b 4096
= 密鑰的位數,本例中為 4096
-C "azureuser@myserver"
= 追加到公鑰文件末尾以便於識別的註釋。 通常以電子郵件地址用作註釋,但也可以使用任何最適合你基礎結構的事物。
-f ~/.ssh/mykeys/myprivatekey
= 私鑰文件的文件名(如果選擇不使用預設名稱)。 追加了 .pub
的相應公鑰文件在相同目錄中生成。 該目錄必須存在。
-N mypassphrase
= 用於訪問私鑰文件的其他密碼。
-
使用
ls ~/.ssh
查看本地機local應該多了id_rsa.pub(公鑰)和id_rsa(私鑰,保密!)文件。 -
在本地機local上使用copy命令將公鑰上傳至remote遠程伺服器上:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote
-
User 和 remote 參考上面的解釋,替換成自己的就好。
-
可進入remote遠程伺服器上
.ssh
目錄查看是否生成了authorized_keys
文件,如果傳輸正確,是會生成的。
此時就已經可以通過ssh user@remote -p port
免密登錄遠端機了!
- 不過這樣還是有點麻煩,可以再簡化一下,比如連實驗室伺服器,輸入
ssh lab
就可以。那就要在本地機local~/.ssh/config
文件中追加內容,如沒有該文件,創建它!
#文件追加信息
Host lab
HostName remote
User user
IdentityFile ~/.ssh/id_rsa #此行可省略
# 配置說明
Host 別名
HostName 主機名(host 或 ip)
Port 埠
User 用戶名
IdentityFile rsa私鑰文件的路徑
這樣就可以用ssh lab
實現遠程登錄了!
無用之用
既然談到Mac上的iTerm2配置,就稍微提一下它可以起到的功能。
比如說你有很多個配置了別名的伺服器,害怕以後會忘掉,就點擊iTerm2的Profiles,紅框處可以修改名稱(Name),快捷鍵(Shortcut key)和命令(Command),會更方便一點。
最後,如果還想瞭解更多SSH基本用法,可以移步SSH 基本用法,大佬講得更為全面。就是這樣~