다중 홉 및 "sudo su"에 대한 ssh 구성

Oct 16 2020

이 일련의 단계가 필요한 특정 설정이 있습니다.

ssh me@host1
ssh me@host2
sudo su otheruser

나는 가지고있다:

  • 내 노트북의 ssh 키를 사용하여 ssh me@host1
  • 내가 할 수있는 host1의 ssh 키 ssh me@host2.

에 대한 권한 이 없습니다ssh otheruser@host2 .

내 목표는 : 이것을 자동화 할 수 있습니까? 내 랩톱의 ~ / .ssh / config 파일에서 가급적이면 다음을 수행 할 수 있습니다.

ssh otheruser

... 구성에서 암호를 포함한 세부 정보를 처리하도록 하시겠습니까?

다음 ssh 구성으로 이미 2/3를 얻을 수 있습니다.

Host host1
HostName host1.example.com

Host host2
HostName host2.example.com

Host mostly_there
HostName host2.example.com
ProxyJump host1 host2

위의 내용은 가능 ssh mostly_there하지만 여전히해야합니다 sudo su otheruser.

답변

1 jeb Oct 20 2020 at 06:17

.ssh / config에서 이것을 사용할 수 있습니다.

HOST host1
  user me

HOST host2
    USER me
    ProxyCommand ssh host1 -W %h:%p

HOST otheruser
    USER me
    ProxyCommand ssh host1 -W %h:%p
    RemoteCommand sudo su -c '/bin/bash -i' otheruser

사용자 otheruser로 host2에 연결하려면 다음을 사용하십시오.

ssh otheruser

현재는 완전한 대화 형 셸이 아니라는 단점이 있지만 더 나은 호출로 해결할 수 있습니다. /bin/bash -i

ArkadiuszDrabczyk Oct 16 2020 at 18:10

루트가있는 경우 공개 키를 otheruser의 authorized_keys에 배포 하고 비밀번호를 사용하지 않고 로그인 할 수 있습니다. otheruser이렇게 전환 한 후 :

mkdir -p ~/.ssh

공개 키를 ~ / .ssh / authorized_keys에 넣으십시오. 이제 otheruser를 수행하는 것처럼 원격으로 로그인 할 수 있습니다 ssh otheruser@host.