2013-01-02 84 views

回答

5

除非您使用something like this answer - 即將用戶名作爲連接的一部分推送,否則不記錄原始系統的用戶名。遠程主機編碼在SSH_CLIENT環境變量中,因此可以確定。

您可以嘗試使用finger遠程系統,但這需要fingerd才能運行,但這些日子並不常見。

你會使用特定的按鍵對於用戶來說,它可以在authorized_keys文件的密鑰,如environment="NAME=value"的起點設置爲一種-的判定連接遠程用戶選項有更好的運氣。例如

environment="REMOTEUSER=fred" ssh-rsa <blahblahkey> <comment> 

如果你有在sshd的配置PermitUserEnvironment一套使用在關鍵的environment選項只會工作,否則在authorized_keys行被忽略,你會被提示輸入密碼。

+0

謝謝皮特。我嘗試了你的提示。 SSH_CLIENT變量已設置,但不幸的是,由於我們通過通用代理進行了隧道傳輸,因此該變量無用。 手指也因防火牆阻擋而無法使用。 環境=「NAME =價值」 - 看起來像系統管理員不允許我們的服務器...從我讀的,它默認情況下禁用?當我嘗試時,無密碼登錄停止,並且系統提示輸入密碼,因此看起來像服務器不這樣。 – Rop

+0

是的,如果在服務器上沒有設置PermitUserEnvironment,則該鍵被忽略(被拒絕,因爲它是無效的)。唯一的另一個愚蠢的選擇是使用'command =「env REMOTE = user/bin/bash',但這只是一個瑣碎的選項,因爲它會阻止非交互式腳本。聽起來好像你有一個難以解決的問題,作爲代理隱藏起始IP地址,並且ssh默認情況下不要求遠程用戶名。 – Petesh

+0

作爲一種解決方法,原則上看起來像這樣的東西可以工作:ssh user @ server'/ bin/bash - rcfile .customrc -l -i';然後它會在登錄時執行與.bashrc不同的文件,在那裏我可以進行自定義設置,但它不完美...在登錄時,我感到惱人的味精「bash:無法設置終端進程組(-1):無效的參數; bash:在這個shell中沒有作業控制「。另外,當我在bash中鍵入ctrl-C時,它會終止整個bash會話,然後退出到客戶端(我從windows/cygwin運行ssh)。修復這些問題? – Rop