使用代理轉送連線到 SSH 時無提示

使用代理轉送連線到 SSH 時無提示

我目前在家工作,需要連接到生產伺服器。工作中的安全性原則不允許 VPN 用戶端連線到生產執行個體。因此,我認為我可以透過開發伺服器(我可以訪問)配置代理轉發,因為這是允許的。

為此,我首先為開發伺服器啟用代理轉發:

  1. 我在我的電腦上新增了ForwardAgent yes開發~/.ssh/config伺服器條目
  2. 我跑去eval 'ssh-agent'啟動ssh代理
  3. 我使用以下命令將 ssh 密鑰新增至代理程式中ssh-add ~/.ssh/id_rsa
  4. 我使用連接到開發伺服器ssh -A <devserver>
  5. 在開發伺服器上,我嘗試使用以下命令連接到生產伺服器ssh -T me@<prodserver>

之後,我就可以在生產伺服器上執行命令了。但是,我從未看到實際的 bash 提示符號。

缺少 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”之類的工具失去了它們精美的格式和彩色輸出;等等。

相關內容