그래서 저는 본질적으로 이렇게 하려고 합니다.
ssh [email protected] -t ssh bob2@test-vm
위의 내용은 터미널에 넣으면 잘 작동하지만 .ssh 구성 파일을 통해 복제하는 데 어려움을 겪고 있습니다.
구성 파일 안에 있는 내용은 다음과 같습니다.
Host bastion
HostName 35.192.152.35
User bob2
Host test-vm
User bob2
FOrwardAgent yes
ProxyCommand ssh bastion nc %h %p 2> /dev/null
그런데 "권한이 거부되었습니다"라는 오류가 나타납니다. 공개 키 파일이 잘못되었나요? 나는 이 게시물에서 위와 같은 내용을 생각해 냈습니다. https://unix.stackexchange.com/questions/124078/how-to-ssh-to-a-server-using-another-server-with-key-from-the-second-server
어쨌든 그것은 그 사람에게는 효과가 있었지만 나에게는 효과가 없는 것 같습니다. 또한 모든 당사자(원본, 요새 및 서버)에서 sshd_chroot 구성에서 에이전트 전달 및 TCP 전달을 허용하려고 시도했지만 아무런 차이가 없었습니다.
ID 경로를 강제로 지정하는 경우:
Host bastion
HostName 35.192.152.35
User bob2
IdentityFile /Users/bob/.ssh/id_rsa
Host test-vm
User bob2
FOrwardAgent yes
ProxyCommand ssh bastion nc %h %p 2> /dev/null
IdentityFile /home/bob2/.ssh/id_ed25519
그런 다음 "/home/bob2/.ssh/id_ed25519" 디렉터리를 찾을 수 없다는 것 외에도 동일한 오류가 발생합니다.
누구든지 아이디어가 있나요?
답변1
요새가 네트워크 방화벽을 파괴하기 위한 것이지 키를 저장하기 위한 것이 아니라는 점을 깨닫고 나면 이를 최소한의 구성으로 2명령 솔루션으로 변경할 수 있습니다.
로컬 머신인 A에서 ssh-agent가 실행 중인지 확인하세요.
B에 일회성 명령을 수행합니다. 여기서 B에는 다음 구성이 있습니다.
Host B
ForwardAgent yes
User proxyuser
그리고 다음 명령을 실행하세요.
$ ssh B ssh-add # and possibly a reference to a non-standard key
이 시점에서 로컬 ssh-agent는 캐시에 원격 키를 갖게 됩니다.
그 후에는 일반 -J
or ProxyJump
to가 C
'그냥 작동'합니다.
Host C
User user
ProxyJump proxyuser@B
$ ssh C
추가 일회성 명령으로 인한 약간의 불편함을 감수하고 구성을 꽤 정상적인 IMO로 유지할 수 있습니다.
어쨌든 키가 로컬 컴퓨터에 캐시될 경우 요새에 키를 저장하면 실제로 추가 안전이 제공되는지 자문해 볼 수 있습니다. 물론 약간의 이득도 있지만~ 아니다키를 디스크에 저장하지만 로컬 시스템이 해킹된 경우 파일을 읽거나 키가 로드된 SSH 에이전트와 통신하는 데 큰 차이가 없습니다.
답변2
test-vm이 요새에서 키를 찾도록 구성하기를 원하는 것 같습니다. 그래서 나는 다음을 제안합니다:
- 키 파일을 요새의 bob2의 .ssh 폴더에 복사합니다.
- 추가하다프록시 명령구성에 ssh-add를 사용하세요.
답변3
아래는 저에게 효과적입니다... 최종 목적지의 IP 주소를 지정한다는 점을 제외하면 귀하의 것과 거의 동일합니다(귀하의 경우에는 관련이 없을 수도 있음).복사해야 했어요내 ssh_config가 요새 중간에 있지 않은 키 파일을 찾고 있기 때문에 요새에서 내 로컬 호스트까지의 키는 다음과 같습니다.
==== added to .ssh/config ====
Host mybastion
HostName 133.35.41.9
User bastuser
IdentityFile /Users/bchapman/.ssh/bast_priv.key
Host mytarget
HostName 109.0.1.38
ProxyCommand ssh -q -W %h:%p mybastion
User targuser
IdentityFile /Users/bchapman/.ssh/targ_priv.key
==============
그 후에는 ssh mytarget, scp localfile mytarget: 등을 사용할 수 있습니다.