%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4.png)
나는 보았다ssh_config매뉴얼 페이지와SSH를 열어내가 사용할 수 있는 웹사이트%n 토큰특정 호스트 항목에 대한 ID 파일을 조회할 때.
OpenSSH의 ssh(1) 및 sshd(8)에서 사용되는퍼센트_확장 토큰
GitHub에서는 SSH 토큰을 배포 토큰으로 사용할 수 있지만 여러 저장소에서 토큰을 여러 번 사용할 수는 없습니다. 따라서 생성해야 하는 별도의 프로젝트 키 수에 관계없이 와일드카드를 사용하여 단일 프로필을 생성하고 싶습니다.
host github-*
Hostname github.com
User git
IdentityFile %d/.ssh/github/%n
IdentitiesOnly yes
그런 다음 이 디렉토리에 github-MyPackage 공개 및 개인 키 쌍을 배치했습니다 ~/.ssh/github/
.
와일드카드 프로필을 찾고 %d는 제대로 작동하지만 원래 명령줄에 지정된 호스트 별칭에서 ID 파일 이름을 찾기 위해 %n을 사용하여 git clone을 수행하려고 하면 다음과 같습니다.
> git clone github-MyPackage:/myorganization/MyPackage.git
Cloning into 'MyPackage'...
percent_expand: unknown key %n
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
이는 git이 액세스하는 방식뿐만 아니라 간단한 ssh 명령으로도 실패하기 때문입니다.
> ssh github-MyPackage
percent_expand: unknown key %n
인터넷 검색을 시도했지만 %n에서 아무것도 찾지 못했습니다. 이것이 완전히 구현되지 않았습니까? 아니면 제가 뭔가 잘못하고 있습니까?
답변1
SSH 버전이 너무 오래된 것일 수도 있습니다. 확인해 보세요 ssh -V
.
OpenSSH_7.9p1은 %n
특정 키워드만 지원합니다(로컬 설치에 대한 매뉴얼 페이지에서):
매치 실행 제어 경로 로컬 명령 원격 명령
이 토큰을 에 추가한 특정 버전은 알 수 없지만 IdentityFile
더 많은 키워드에 대해서는 OpenSSH_8.9p1에서 작동합니다.
인증서 파일 제어 경로 신원 브로커 신분증 지역 전달 매치 실행 원격 명령 원격 전달 사용자가 알고 있는 호스트 파일 프록시 명령