How IT

언제든지 물어보세요.

컨텐츠로 건너뛰기
  • 홈
  • Unix
  • Apple
  • Java
  • Android
  • C#
  • C++

이상한 SSH 문제, ssh는 -t와 함께 작동하지만 그것 없이는 멈 춥니 다. 할 수

내가 언제 ssh내 서버 중 하나에, 그것은 로그인 보인다, 그러나 정지 나에게 메시지를주기 전에 ( message debug2: shell request accepted on channel 0 is the last log entry).

이상한 것은 그렇지 않은 ssh -t "/bin/bash"경우 작동합니다 ssh.

내가 지금까지 알아 낸 것

  • 같은 지리적 위치에있는 서버에서 정상적으로 로그인 할 수 있습니다
  • I 인 경우 ssh -t '/bin/bash'-모든 위치에서 완벽하게 로그인 할 수 있습니다.
  • 서버를 사용 rsync 하면 작동하는 것 같습니다.
  • 서버 rsync 에서 사용하면 문제없이 작동합니다.

내가 시도한 것

  • 제거하거나 모든 로그인 옵션을 변경 .profile,.bashrc /etc/profile
  • 제대로 작동하는 동일한 서버에서 ssh_config 및 / 또는 sshd_config 다른 서버로 변경
  • 라우팅을 확인했습니다
  • 네트워크 전문가 tcpdump가 아무 소용이 없는지 조사 했습니다 (재전송이 많지만)

나는 정말로 다른 것을 생각할 수 없다

닷지 네트워크 카드 드라이버 / 펌웨어 외에.



답변

프로필에 문제가있을 수 있습니다.
당신이 연결할 때 ssh -t /bin/bash 쉘하지 않습니다 ‘로그인’, 그것은 소스하지 /etc/profile않으며 ~/.profile및 ~/.bashrc…

따라서 연결 후 셸을 디버그 모드로 설정하고 각 파일을 소싱하여 내부에서 차단되는 내용을 찾으십시오.

set -x
. /etc/profile
...and so on

편집하다

내가 틀렸다는 점에 유의하십시오 .bashrc 파일은 대화 형 쉘에서 소스로 제공됩니다 (따라서 profile.d 파일 만 중요합니다).

연결 프로세스의 여러 단계 목록을 작성하십시오. 이 같은

1) SSH 연결 (config, …)
2) 로그인 (PAM, tty, wtmp 등 …)
3) 셸 시작 (프로필, 홈 디렉토리 액세스, …)

(1)을 확인하려면 디버그 모드에서 sshd 데몬을 시작할 수 있습니다. 이를 위해 전용 포트를 청취하면서 다른 sshd를 시작해야합니다 (포트 22가 아니므로 일반 sshd 데몬을 중지 할 필요가 없습니다).

# /usr/sbin/sshd -p 2222 -ddd 

그 sshd는 하나의 연결 만 허용하고 백그라운드로 들어 가지 않습니다. 다른 터미널을 열고 해당 ssh 세션에 연결하십시오.

# ssh -vvv -p 2222 user@host

동일한 브랜드의 다른 서버 중 하나와받는 메시지를 비교할 수 있습니다. 그러면 문제가 ssh 측에 있는지 여부를 알 수 있습니다.

(-ddd 및 -vvv는 최대 디버그 수준이므로 조정할 수 있습니다)

나는 가지고 링크 , 훨씬 더 자세히 설명합니다.


답변

내 문제에 대한 답
그것은 네트워킹 문제였습니다. 결국 모든 네트워크 카드의 MTU를 약간 떨어 뜨림으로써 문제가 사라 졌다는 것을 알았습니다.

아마도 해당 네트워크에 대해 잘못 구성되었을 가능성이 있지만 이제는이를 증명하고 네트워크 팀 (서버 문제라고 계속 알려주는 네트워크 팀)에게 전달할 수 있습니다.

그러나 이것이 최후의 수단
이라는 점을 명심하십시오. ssh 서버는 동일한 서브넷에서 작동했지만 외부에서는 작동하지 않았으며 ssh -t ‘/ bin / bash’는 어디에서나 작동했습니다.

또한 rsync가 제대로 시작되었지만 어느 시점에서 중단되거나 연결이 끊어졌습니다.

따라서이 답변을보고 있다면 위의 다른 방법을 먼저 시도하고 내 것과 같은 이상한 점이있는 경우에만 도움이 될 것입니다.

모든 도움을 주셔서 감사합니다. 나는 모든 것을 시험해 보았고로드를 가르치고 서버와 아무런 관련이 없음을 확인하도록했습니다 (바람직한 모든 것).

도와 주신 모든 분께 감사드립니다


답변

당신이 할 때 ssh some_user@some_host /bin/bash, 당신이하고있는 일은 시작됩니다 some_user을 (에 정의 된대로의 쉘 /etc/passwd에 some_host )하고, 주어진 명령을 실행 /bin/bash하는 쉘 내에서.

지금, some_user 의 쉘 ( 이것도 가정합니다 bash)이 대화 형으로 시작되지 않습니다 (대신 주어진 명령을 실행하고 있습니다). 따라서 pty ( 의사 터미널을 할당하지 않습니다. )를 발행 된 명령에 사용할 pty가 없으므로 대화식으로 시작하지 않습니다.

이 예에서는 요청 된 /bin/bash명령이 시작되었지만 중단 된 것으로 나타납니다.

물어 보면이 문제를 해결할 수 있습니다 ssh어쨌든 pty를 작성하여 쉘 및 해당 하위 프로세스에 사용할 수 있도록 pty를 작성 . 이것이하는 일 -t입니다.

    $ ssh -t some_user@some_host bash

pty를 작성하도록 명령을 강제 실행하여이 문제를 해결할 수도 있습니다. 에 대한bash-i 인수 를 전달하여이 작업을 수행합니다 . 다음 명령 줄도 작동해야합니다.

$ ssh some_user@some_host bash -i

그러나이 경우에는 쉘이 액세스 할 수 없습니다. /dev/tty 경고가 발생합니다.

bash: no job control in this shell

이에 대한 이유는 설명되어 있습니다 여기 있습니다 . 쉘에서 수행하려는 작업에 따라 문제가 될 수도 있고 아닐 수도 있지만 사용 ssh -t하는 것이 더 나은 옵션 일 수 있습니다.

( bash어쨌든 사용자의 기본 쉘 경로에 있어야하기 때문에 명령으로 전달할 수 있습니다 )


답변

최근에 중첩 가상화 플랫폼을 사용할 때도 같은 문제가 있습니다.

원본 또는 대상 서버에서 MTU를 1500에서 1400으로 줄인 후에 작동합니다.

/sbin/ip link set dev eth0 mtu 1400


답변


이 글은 Unix 카테고리에 분류되었고 login, shell, ssh 태그가 있으며 소장 마님에 의해 2024-09-07에 작성되었습니다.

글 네비게이션

← 어떻게 자동으로 PEM 파일이있는 Firefox에서 루트 CA를 신뢰할 수 있습니까? 결과 명령 줄을 명령 프롬프트를 사용하여 여러 폴더에서 모두 상위 디렉토리로 파일 이동 디렉토리 ‘C : \ →

태그

  • android
  • apt
  • bash
  • boot
  • c#
  • c++
  • code-golf
  • command-line
  • debian
  • firefox
  • git
  • google-chrome
  • hard-drive
  • html
  • java
  • keyboard
  • linux
  • mac
  • macos
  • math
  • memory
  • microsoft-excel
  • mysql
  • networking
  • performance
  • permissions
  • python
  • r
  • regression
  • security
  • shell
  • sql-server
  • ssh
  • string
  • terminal
  • ubuntu
  • unity
  • usb
  • vim
  • virtualbox
  • windows
  • windows-7
  • windows-8
  • windows-10
  • windows-xp

최신 글

  • Windows에서 파티션 크기를 조정 한 후 APFS 파티션이 손실 됨 00 80
  • App Store에서 El Capitan을 강제로 다시 다운로드 하시겠습니까? 업데이트 된 플래시 드라이브 설치 프로그램을 빌드하기
  • 기존 시스템에 부팅 드라이브로 SSD 추가 백업에 큰 관심이 없습니다. 내가 걱정하는 것은이
  • geoJSON featureCollection에 properties 요소를 갖는 것이 유효합니까?
  • 추세를 식별하기 위해 신호 처리 원리를 신중하게 사용 매우 시끄러운 장기 데이터에서 추세를

카테고리

  • Android
  • Apple
  • C#
  • C++
  • cooking
  • cs
  • cstheory
  • diy
  • drupal
  • electronics
  • emacs
  • Gis
  • Git
  • Html
  • Java
  • Javascript
  • magento
  • photo
  • Python
  • raspberrypi
  • scicomp
  • Server
  • Software
  • Sql
  • stats
  • Superuser
  • ubuntu
  • Unix
  • vi
  • webapps
  • webmasters
  • wordpress
  • 게임개발
  • 코딩
Proudly powered by WordPress
Go to mobile version
Close