Bash
無法通過 Bash 腳本使用私鑰進行 SSH
首先,如果這是一個非常明顯/微不足道的問題,我深表歉意,我仍在學習 linux/unix 的來龍去脈。
我使用一些需要通過 ssh 和私鑰訪問才能登錄的伺服器。所以,命令是這樣的:
ssh -i /path/to/key.pem user@000.000.000.000
我創建了一個 bash 腳本,讓我只使用我自己的呼叫,
access
,並且只有一個基本的 switch 語句用於隨後的參數來控制我登錄到哪個伺服器。例如,access server1
將發出適當的ssh
命令以登錄到 server1。問題
電話剛剛掛斷,
ssh
我留下了一個不接受SIGINT
(Ctrl
+C
) 的空終端,我必須退出終端並再次打開它才能使用它。據我所知,這可能是私鑰的權限問題。它的權限目前是
600
. 將其更改為644
給我一個錯誤,即權限太開放並退出ssh
嘗試。有什麼建議嗎?
- 有
ssh_config
,為此,您可以在其中指定主機別名和密鑰並將其儲存,而無需創建諸如 bash 腳本之類的 hara-kiri 來執行此操作。它基本上~/.ssh/config
以這種格式儲存在您的:Host host1 Hostname 000.000.000.000 User user IdentityFile /path/to/key.pem
然後你可以簡單地打電話
ssh host1
到達,得到
000.000.000.000
2. 如果你真的想要高效並且擁有更短的快捷方式,那麼 bashalias
比 bash 腳本更適合。alias access="ssh -i /path/to/key.pem user@000.000.000.000"
- 如果你真的想使用 bash 腳本,你需要強制 ssh 使用
-tt
選項在遠端伺服器上分配你的 TTY:ssh -tti /path/to/key.pem user@000.000.000.000
有關更多提示,您可以瀏覽 和 的手冊
ssh
頁ssh_config
。