이와 같은 별칭이 많이 있습니다. = 앞의 부분은 SSH 구성의 호스트입니다.
alias sshConfigHost='ssh -t hostname docker exec -it containerName bash'
일종의 구성 파일에 추가할 수 있나요? 호스트 이름은 SSH 구성에 정의되어 있으므로 두 번 사용됩니다. %<whatever>
SSH 구성에서 호스트 이름을 가져오는 이와 같은 자리 표시자를 가질 수 있습니까?
그렇지 않은 경우 최소한 SSH 구성에 컨테이너 이름을 포함시킨 다음 자리 표시자를 사용하여 cmd로 가져올 수 있습니까?
답변1
sshConfigHost
나는 당신이 후행 "매개 변수 " 없이 별칭을 사용하고 싶다고 가정합니다 sshConfigHost -c "shell code here"
.
그렇다면 다음 항목에 모든 것을 넣을 수 있습니다 ~/.ssh/config
.
Host friendlyName
RequestTTY yes
Hostname hostname
RemoteCommand docker exec -it containerName bash
(그렇다면 Host *
기억해주세요.각 매개변수에 대해 처음 얻은 값이 사용됩니다..)
이제 다음을 수행하면 됩니다.
ssh friendlyName
그리고 ssh
당신처럼 행동할 것입니다:
ssh -t hostname 'docker exec -it containerName bash'
Host …
필요한 만큼 섹션을 정의합니다. 그들 중 일부는 동일 하거나 Hostname
다른 것을 사용할 수도 있습니다 RemoteCommand
. 초점은 당신에게 있습니다할 수 있는풍부한 구성을 구축하면 셸에서 충분하고 ssh oneword
구성이 채워집니다.모든 것당신에게는 상황에 따라 다릅니다 oneword
.
구성 파일은 의도적으로 모든 옵션을 지정할 수 있을 정도로 강력합니다. 바라보다 man 5 ssh_config
. 나는 이 개념이 깔끔하고 편리하다는 것을 알기 전까지는 이 개념(다른 도구처럼 명령줄에서 옵션 등을 지정할 수 있는데 왜 "모호한" 구성으로 귀찮게 해야 합니까?)에 겁을 먹었습니다. 이것이 올바른 사용 방법입니다 ssh
. 일반적으로 호출 시 반복해서 반복해야 하는 경우 ssh
구성 파일에 넣는 것이 좋습니다.
그러면 쉘에 별칭이 필요하지 않습니다. 전체 구성은 귀하의 것입니다 ~/.ssh/config
.