~/.ssh/rc 파일이 있는 원격 서버가 있습니다. 서버에 SSH로 접속할 때마다 파일이 실행되고 원격 셸에 접속됩니다. 보통 그것이 내가 원하는 것입니다. 때때로 나는 이것을 원하지 않습니다.
~/.ssh/rc가 실행되지 않도록 ssh를 실행할 때 제공할 수 있는 옵션이 있습니까?
답변1
클라이언트는 이 작업을 수행할 수 없습니다. 이는 보안 기능입니다. ~/.ssh/rc
파일은 클라이언트가 우회할 수 없는 작업을 수행할 수 있습니다(비록 일반적인 용도는 아니지만).
작업을 우회하는 가장 확실한 방법 ~/.ssh/rc
은 환경 변수에 의존하는 코드로 작업을 래핑하고 클라이언트가 이 환경 변수를 서버에 전달할 수 있도록 하는 것입니다( AcceptEnv
의 지시어 /etc/sshd_config
).
서버 측에서 이를 수행하는 또 다른 방법은 다음과 같습니다.no-user-rc
매개변수와 함께 키 사용.
답변2
ssh
설명서와 설명서를 잠깐 훑어본 후 볼 수 있는 유일한 방법은 sshd
이 파일을 넣는 것 뿐입니다.아니요SSH를 변경하여 실행됨고객이는 별도의 키를 사용하여 호스트를 인증함으로써 수행됩니다.
~/.ssh/rc
사용자가 사용할 수 있는 특정 키에 대한 파일 no-user-rc
옵션 을 설정하여 실행을 비활성화할 수 있습니다 .~/.ssh/authorized_keys
파일은 일반적으로 다음과 같습니다.
ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost
이는 sshd
매뉴얼에 설명된 옵션으로 보완될 수 있습니다.
no-user-rc ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost
rc
그런 다음 파일이 실행될 때 다른 다른 키를 추가할 수 있습니다 .
no-user-rc ssh-ed25519 AAAASOMEKEYSIGNATUREHERE myself@somehost
ssh-ed25519 AAAASOMEDIFFERENTKEYSIGNATUREHERE myself@somehost
rc
로컬에서는 파일 실행 여부에 따라 별도의 키를 사용하여 다음 구성을 사용하여 연결할 수 있습니다 ~/.ssh/config
.
Host myhost
Hostname theremote.host
User myself
IdentityFile %d/.ssh/id_ed25519
Host myhost-norc
Hostname theremote.host
User myself
IdentityFile %d/.ssh/id_ed25519-norc
여기서 조 서명의 서명은 조 서명의 서명 ~/.ssh/id_ed25519-norc
과 일치합니다 no-user-rc
.
꽤 복잡해 보이지만 솔직히 이 rc
파일 실행을 피할 수 있는 다른 방법을 찾을 수 없습니다. 또 다른 옵션은,Giles가 제안한대로rc
, 특정 환경 변수를 기반으로 수행되는 모든 작업을 파일이 우회 하도록 하고 대신 /etc/ssh/sshrc
파일이 존재하지 않는 경우 일반적으로 호출하는 것처럼 호출합니다 rc
( sshd
설명서에는 /etc/ssh/sshrc
존재하지 않는 경우 다음을 사용하라고 나와 있습니다. 설명서를 xauth
참조하세요. sshd
더 많은 정보 ).