도메인에 대해 여러 다른 키와 사용자를 시도하기 위해 SSH 프로필을 구성하려고 합니다. 원래는 이 작업을 수행하기 위해 도트 파일의 함수를 사용했지만 투박하고 느리고 보기 흉했습니다.
우리 회사에는 SSH 로그인을 위한 사용자와 개인 키가 서로 다른 여러 서버가 있습니다. 호스트 이름은 많지만 도메인은 항상 동일합니다.
마스터 레코드에서 필요한 키/사용자 이름 쌍을 찾아볼 수 있지만 재미는 없습니다.
이것은 내 SSH 구성 파일의 일부입니다.
Host *.companydomain.net
User ubuntu
PreferredAuthentications publickey
IdentityFile ~/.ssh/key_a.pem
Host *.companydomain.net
User ubuntu
PreferredAuthentications publickey
IdentityFile ~/.ssh/key_b
Host *.companydomain.net
User anotheruser
PreferredAuthentications publickey
IdentityFile ~/.ssh/key_c
이제 첫 번째 항목( 사용 key_a.pem
)이 시도된 다음 실패하고 아무 것도 실패하지 않는 것으로 보입니다. 이상적으로는 이것이 실패하고 로그인이 성공할 때까지 세 가지 조합을 각각 시도하고 싶습니다.
저는 OpenSSH_7.6p1을 실행하는 macOS를 실행하고 있습니다.
감사해요!
답변1
매뉴얼에는 여러 지시문을 사용할 수 IdentityFile
있으며 나열된 모든 파일이 사용되므로 처음 두 항목을 결합할 수 있다고 나와 있습니다.
Host *.companydomain.net
User ubuntu
PreferredAuthentications publickey
IdentityFile ~/.ssh/key_a.pem
IdentityFile ~/.ssh/key_b
하지만 한 번의 호출(또는 한 번의 SSH 연결)로 여러 사용자 이름을 시도할 수는 없으므로 ssh
스크립트를 작성해야 할 수도 있습니다.
세 번째 항목을 다른 항목과 함께 배치하면 IdentityFile
스크립트가 너무 길 필요는 없으며 다음과 같아야 한다고 생각합니다.
#!/bin/sh
for user in ubuntu anotheruser; do
ssh -l "$user" "$@" && break;
done
( User
이 경우 구성 파일에서 지시문을 제거하십시오.)