ssh-keygen -t rsa를 자동화하여 암호를 요구하지 않습니다.


164

ssh-keygen -t rsa비밀번호 없이 자동화해야 합니다. 즉 프롬프트에 입력하십시오.
쉘 스크립트에서 어떻게 할 수 있습니까?

답변:


230

암호 문구를 요구하지 않고 SSH 키 쌍을 생성하려면 다음을 수행하십시오.

$ ssh-keygen -f id_rsa -t rsa -N ''

2
나를 위해 일했다! Github은 "패스 프레이즈 입력 (패스 프레이즈가 없으면 비어 있음)"이후 비밀번호를 입력하지 않은 경우에도 항상 -N 옵션없이 비밀번호를 요청했습니다.
Hollerweger

4
RHEL 6에서 다음 오류가 발생했습니다. " ssh-keygen: option requires an argument -- N":(
Anthony O.

1
이것은 dzdo명령 앞에 명령을 사용했기 때문 입니다. 그래서 다음과 같이 작성해야합니다.dzdo -i -u target_user ssh-keygen -f id_rsa -t rsa -N "''"
Anthony O.

1
옵션과 빈 비밀번호 문구를 구분하는 공간 -N ''이 중요합니다. 공간을 추가하면 성공했습니다!
GH05T

33

Windows의 PowerShell 에서이 작업을 수행 해야하는 경우 다음을 사용하십시오.

ssh-keygen -f $Name -t rsa -N '""'

git bin 디렉토리가 경로에 있는지 확인해야합니다.

$sshPath = "<path>\git\bin\"

$env:path += ";$sshPath"

그런 다음 PoshGit에서 사용하려면 다음과 같습니다.

Add-SshKey "<path>\.shh\KeyFilename"

고마워 BTW git\usr\bin는 올바른 디렉토리입니다.
majkinetor

4
이것은 나를 위해 작동하지 않습니다. "키"mykey "저장 실패 : 암호가 너무 짧습니다 (최소 4 자)"라는 오류가 발생합니다. 예를 들어 큰 따옴표 나 작은 따옴표를 바꿔야했습니다 ssh-keygen -f $Name -t rsq -N '""'.
Aaron Jensen

1
@AaronJensen도 마찬가지입니다. 수정 해 주셔서 감사합니다. 내가 사용한'""'
Trevor Sullivan

@AaronJensen 감사합니다! '""'나를 위해 일한 유일한 변형입니다.
Somnium

@ Daniel-Little PoshGit 모듈을 찾을 수 없습니다.이 이름으로 찾은 유일한 것은이 cmdlet이없는 것 같은 posh-git입니다. 그것에 대한 더 많은 정보?
Jim

18
$ ssh-keygen -f $HOME/.ssh/id_rsa -t rsa -N ''

이 답변은 본질적으로 Shamoon의 답변에서 복사하여 붙여 넣기
oᴉɹǝɥɔ

@ oᴉɹǝɥɔ Shamoon의 답변은 개인 키의 경로를 명시 적으로 지정하지 않습니다.
GMaster

11

대답 2에 대한 수정. OL 및 RHEL 시스템에서 파일 이름이 id.rsa가 아니라 id_rsa 여야한다는 것을 알았습니다.

따라서 OL 또는 RHEL 시스템에서 명령은 다음과 같습니다.

$ ssh-keygen -f id_rsa -t rsa -N ''

2
내가 아는 id_rsa한 RSA 키의 기본 파일 이름이므로 기본값을 고수하려는 경우 -f옵션 을 명시 적으로 사용하지 않아도 됩니다.
danidemi

3
@danidemi 당신이 기본값이라는 것이 맞다면, -f옵션 을 지정하는 한 가지 이유 는 스크립트에서 이것을 실행할 수 있기 때문입니다. 후속 프롬프트를 비활성화하려면 기본값을 다시 확인하면됩니다.
Tristan Reid

9

이건 어떤가요 :

ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N ''

에 언급 한 바와 같이 man ssh-keygen:

SYNOPSIS
     ssh-keygen [-q] [-b bits] [-t dsa | ecdsa | ed25519 | rsa | rsa1] [-N new_passphrase] [-C comment] [-f output_keyfile]
(...)
      -q      Silence ssh-keygen.

(즉 함께 openssh-client데비안 9.4 스트레칭 패키지 OpenSSH_6.7p1 Debian-5+deb8u4)


고마워요 (OpenSSH_7.6p1 우분투 4ubuntu0.2)
데이비드 웹스터

0

bash 스크립트에서 ssh-keygen 명령과 나에게 잘 맞는 최종 답변을 자동화해야했습니다.

echo -e "\n" | ssh-keygen -N "" &> /dev/null

-e를 사용하는 echo 명령은 "\ n"을 Enter 키로 해석하지만 암호로 작동하지 않습니다. 그런 다음 -N ""(빈 암호 문구) 옵션을 사용하면 암호가 비어 있고 아무 것도 요구하지 않습니다. &> / dev / null은 'stdout'과 'stderr'을 / dev / null로 보내므로 디스플레이를 통해 아무것도 인쇄되지 않습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.