일종의 구성 파일에서 이러한 별칭을 사용할 수 있습니까?

일종의 구성 파일에서 이러한 별칭을 사용할 수 있습니까?

이와 같은 별칭이 많이 있습니다. = 앞의 부분은 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.

관련 정보