Ssh

SSH 在登錄時掛起,將“cvs 伺服器”顯示為使用者的掛起程序

  • March 20, 2018

當我嘗試通過 ssh 登錄 CentOS 機器時,輸入密碼後它掛起。我可以通過控制台進入系統,當我執行時,w我可以看到正在為嘗試登錄的使用者執行“cvs 伺服器”。

USER    TTY   FROM       LOGIN   IDLE   PCPU   WHAT
root    pts/1 systemname 11:37   1:14m  0.00s  cvs server

在安全日誌中,它看起來像是一個有效的登錄:

Accept password for root from 172.0.0.17 port 53270 ssh2
pam_unix(sshd:session): session opened for user root by (uid=0)

它看起來像一個正常的登錄,但它永遠不會真正給我提示。我試過重啟 SSHD 服務,同樣的問題。這是一個生產盒,所以我有點猶豫要重新啟動它。我似乎在日誌文件中找不到任何可疑的內容。

當我執行ssh -vvv並嘗試連接時,它看起來也很好,但是在“請求接受通道..”之後我從來沒有收到登錄消息。這是 -vvv 結尾的粘貼:

debug2: channel 1: request shell confirm 1
debug3: send packet: type 98
debug2: callback done
debug2: channel 1: open confirm rwindow 0 rmax 32768
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 1
debug2: PTY allocation request accepted on channel 1
debug2: channel 1: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 1
debug2: shell request accepted on channel 1

另外,我通過網路防火牆查看它是否正在丟棄數據包或其他東西,沒有發生類似的事情。我也嘗試過其他一些系統,同樣的問題。

我以前從未見過這個,似乎無法找到關於這個確切問題的任何好資訊。任何幫助,非常感謝!

編輯:我在這裡只有一個 root 帳戶,沒有.bashrc或者.bash_profile我可以在 root 或其他任何地方找到。但是,我確實看到了 ancvs.sh和 a cvs.csh in /etc/profile.d/。我確實看到了一個 for 循環,/etc/profile/它正在尋找要/etc/profile.d/在啟動時執行的腳本。

以下是這些腳本的內容:

cvs.sh

# change default from rsh to ssh for cvs command
export CVS_RSH=${CVS_RSH-ssh}

cvs.csh

# change default from rsh to ssh for cvs command
if ( "$?CVS_RSH" == 0 ) setenv CVS_RSH ssh

我想也許它正在尋找,cvsserver我在腳本目錄中沒有看到任何與伺服器有關的東西。還有其他地方我應該尋找嗎?我看過配置文件的所有正常地方,什麼都沒有。

謝謝!

我找到了麻煩製造者。sshd_config裡面有一個舊條目ForceCommand cvs server。一旦我調整了評論標記並重新啟動服務,我就可以正常登錄了。

實際上,我最初瀏覽了這個文件,但沒有一點一點地檢查所有內容。本來可以為我節省一兩個小時來徹底完成任務……

引用自:https://unix.stackexchange.com/questions/432399