저는 ssh
CyberArk를 통해 Linux 호스트에 로그인하는 데 익숙합니다. 이것이 사용자 이름/호스트 이름 조합이 다음과 같은 이유입니다.DB6164@DB6164CP#[email protected]#[email protected]
다음 ssh
명령이 유효합니다:
$ /usr/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no DB6164@DB6164CP#[email protected]#[email protected]
그러나 다음 scp
명령은 실패합니다.
$ /usr/bin/scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no DB6164@DB6164CP#[email protected]#[email protected]:/tmp/file.txt file.txt
DB6164@DB6164CP#[email protected]#22: invalid user name
호스트 이름에서 "#"을 제거하면 scp
불평이 중지되지만 CyberArk는 실패합니다.
scp
또한 URI 형식을 사용해 보았습니다 scp://[user@]host[:port][/path]
.
$ /usr/bin/scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no scp://DB6164@DB6164CP#[email protected]#[email protected]/tmp/file.txt file.txt
scp://DB6164@DB6164CP#[email protected]#[email protected]/tmp/file.txt file.txt: invalid uri
하지만 이것도 실패했다.
왜 scp
실패하고 언제 ssh
성공하며 위 scp
명령을 작동시키려면 어떻게 해야 합니까?
고쳐 쓰다: 여러 호스트(CyberArk를 통해 연결됨)에 대해 위 작업을 수행해야 합니다.
답변1
scp -o User='foo@bar@baz#quux' host:/rpath lpath
scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
-o User='DB6164@DB6164CP#[email protected]#22' \
PsmpDblanVip.example.net:/tmp/file.txt file.txt
답변2
실용적인 솔루션으로 요청한 질문에 따라 이 대상에 대한 기본 매핑을 설정할 수 있으며 이는 모든 ssh
전송 사용을 단순화합니다.
이를 사용자와 CyberArk 에이전트로 분할하겠습니다. 최종 대상 호스트가 정확하지 않은 경우 그에 따라 아래 예를 조정하세요.DB6164@DB6164CP#[email protected]#[email protected]
DB6164@DB6164CP#[email protected]#22
PsmpDblanVip.example.net
DB6164CP
파일을 편집(또는 생성) ~/.ssh/config
하고 파일 끝에 다음을 추가합니다.
########################################################################
# CyberArk proxy
#
Host DB6164CP
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
Hostname PsmpDblanVip.example.net
User DB6164@DB6164CP#[email protected]#22
########################################################################
# Default
#
Host *
ForwardX11 yes
ForwardX11Trusted yes
Compression yes
ServerAliveInterval 60
이러한 설정은 이전에 명시적으로 정의 및 일치되지 않은 모든 연결에 사용되므로 기본 호스트에 대한 설정을 조정해야 할 수도 있습니다. (첫 번째 Host
로 일치하는 부분이 사용된 부분입니다.)
이 구성을 완료한 후에는 간단히 대상을 참조할 수 있습니다 DB6164CP
.
ssh -n DB6164CP id
scp -p /etc/hosts DB6164CP:/tmp/my_hosts
항목에 추가 호스트 이름과 패턴을 추가할 수 있으므로 Host
동일한 프록시 호스트를 통과하는 대상이 여러 개인 경우 이를 정의할 수 있습니다.
Host DB6164CP OTHER*
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
Hostname PsmpDblanVip.example.net
User %r@%h#[email protected]#22
다음과 같이 대상을 참조하십시오.
ssh DB6164@DB6164CP
ssh someOtherUser@OTHERhost1 # Or: ssh -l someOtherUser OTHERhost1
scp DB6164@DB6164CP:file.txt . # Or: scp -l DB6164 DB6164CP:file.txt
필요에 따라 %r
및 를 사용할 수 있습니다 %h
. 항상 고정된 사용자 이름이 있지만 호스트가 가변적인 경우 대신 고정 문자열을 입력하세요 %r
(원래 문제 시나리오의 경우).