
我目前在家工作,需要連接到生產伺服器。工作中的安全性原則不允許 VPN 用戶端連線到生產執行個體。因此,我認為我可以透過開發伺服器(我可以訪問)配置代理轉發,因為這是允許的。
為此,我首先為開發伺服器啟用代理轉發:
- 我在我的電腦上新增了
ForwardAgent yes
開發~/.ssh/config
伺服器條目 - 我跑去
eval 'ssh-agent'
啟動ssh代理 - 我使用以下命令將 ssh 密鑰新增至代理程式中
ssh-add ~/.ssh/id_rsa
- 我使用連接到開發伺服器
ssh -A <devserver>
- 在開發伺服器上,我嘗試使用以下命令連接到生產伺服器
ssh -T me@<prodserver>
之後,我就可以在生產伺服器上執行命令了。但是,我從未看到實際的 bash 提示符號。
我可以做些什麼來確保提示出現嗎?
答案1
在最後一步中,ssh
不帶-T
選項運行:
-T Disable pseudo-terminal allocation.
使用該-T
選項實際上會停用分配 TTY,這反過來會使您無法獲得 shell。
mtak@rubiks:~/bla(develop)$ ssh gen1
THIS IS A PRIVATE COMPUTER SYSTEM. Unauthorized access prohibited.
You have mail.
Last login: Tue Mar 10 10:45:25 2020 from vpn-int-2.int.mtak.nl
mtak@gen1:~$ logout
Connection to gen1 closed.
mtak@rubiks:~/bla(develop)$ ssh -T gen1
THIS IS A PRIVATE COMPUTER SYSTEM. Unauthorized access prohibited.
You have mail.
date
ma mrt 16 16:12:53 CET 2020
答案2
我嘗試使用連接到生產伺服器
ssh -T me@<prodserver>
您沒有收到提示,因為使用該-T
選項告訴 ssh 禁用終端機模式(tty 分配)。
tty 的存在是所有程式如何確定它們是否正在交互運行(即附加到終端/鍵盤)或是否從文件或管道提供命令的方式。在後一種情況下,即「批次」模式,shell 禁用所有提示是正常的;諸如“ls”之類的工具失去了它們精美的格式和彩色輸出;等等。