ssh%_expand 토큰 %n이(가) 작동하지 않습니다

ssh%_expand 토큰 %n이(가) 작동하지 않습니다

나는 보았다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에서 작동합니다.

인증서 파일
제어 경로
신원 브로커
신분증
지역 전달
매치 실행
원격 명령
원격 전달
사용자가 알고 있는 호스트 파일
프록시 명령

관련 정보