ssh 키를 생성하는 bash 스크립트의 "입력"키 누르기 자동화


101

간단히 실행되는 스크립트를 만들고 싶습니다. ssh-keygen -t rsa . 그러나 그것을 3 번 통과하는 방법은 무엇입니까?

답변:


217

시험:

ssh-keygen -t rsa -N "" -f my.key

-N "" 빈 암호를 사용하도록 지시합니다 (대화 형 스크립트에서 두 개의 입력과 동일).

-f my.key 키를 저장하도록 지시합니다. my.key (적절하다고 생각되는대로 변경).

모든 것이 Enter 키를 제공 할 필요없이 실행됩니다. :)

대화 형 스크립트에 엔터를 보내려면 :

echo -e "\n\n\n" | ssh-keygen -t rsa

4
올바른 답변이지만 다른 스크립트에서 Enter 키를 한 번 더 누르는 방법을 알고 싶습니다.
Sławosz

3
물론입니다-스크립트에 줄 바꿈을 보내는 방법을 포함하도록 답변을 업데이트했습니다.
Rudu 2014 년

2
echo -e "\ n \ n \ n"| sshkeygen -t rsa가 나를 위해 작동하지 않습니다. 직접 시도해 볼 수 있습니까? 첫 번째 입력 만 통과합니다. 그러나 다른 간단한 스크립트에서는 작동합니다.
Sławosz

1
게시하기 전에 테스트했습니다. 대시 ssh-keygen가 떨어진 것처럼 보이지만 정상적으로 작동합니다. 다시 추가 했습니까? {edited} 또한-스크립트를 두 번 이상 실행할 수 없습니다. 기존 _rsa키 파일 을 덮어 쓸 것인지 확인하기 위해 질문을 변경 합니다 (따라서 y 또는 n을 제공해야 함)
Rudu

13
yes ""대신 사용 하는 것이 좋습니다. echo -e "\n\n\n"( yes기본적으로 "y"가 주어진 인수를 출력 함] 무한대로 사용 하는 것이 좋습니다 . 프로그램이 요구할 수있는 모든 것에 대해 "예"응답을 제공하려는 상황에 적합합니다.) yes더 짧 ssh-keygen으며 질문을 추가 해야하며 자동으로 답변됩니다. :)
zrajm 2015


1

더 필요하다는 점을 제외하고는 Michel Marro 와 동의합니다 . 파일이 이미 존재하는 경우에도 덮어 써야하는지 묻는 대화 형 상태입니다.

질문 의 답을 사용하십시오 .

yes y | ssh-keygen -q -t rsa -N '' >/dev/null

덮어 쓰기 메시지를 차단하려면 null로 리디렉션해야합니다.


0
echo -e "\n"|ssh-keygen -t rsa -N ""

뭐라고? 이것은 실제로 작동하지 않는다고 주장하는 답변 중 하나보다 바꿈 이 적습니다 ( 모든 곳 에서 사용할 수 있는 것이 아닌 전혀 echo -e다른 것을 방출하는 플랫폼의 하위 집합입니다 ). -essh-keygen
Charles Duffy

... 확실히 말하자면, 저는 ssh-keygen -N ''자동화 된 설치 절차의 일부로 프로덕션에서 사용 하고 stdin을 전혀 읽지 않으므로 echo( 모든 echo 변형) 파이프를 사용할 . (부여, 나는 표준 입력에 연결되어 믿고 /dev/null, 그것이 TTY에 붙어 잘 때 다른 행동이있을 수 있지만, 더 나은 대답은 내 생산 유스 케이스에서 </dev/null보다는 echo ... |)
찰스 더피

1
그것은 파일 이름을 나에게 묻습니다 : $ ssh-keygen -t rsa -N '' Generating public/private rsa key pair. Enter file in which to save the key (/home/dlyons/.ssh/id_rsa):
Mannix

0

보안 및 성능 을 위해 ed25519 를 사용하는 것이 좋습니다 .

yes "y" | ssh-keygen -o -a 100 -t ed25519 -C "Bla Bla" -f /mypath/bla -N ""

여기

-o 이전 PEM 대신 OpenSSH 키 형식 (OpenSSH 6.5 이상 필요)

-a DH-GEX 후보자를 선별하는 동안 소수성 테스트의 수

-t 키 유형 (ed25519, RSA, DSA 등)

-f /mypath/bla 출력 파일 경로 및 이름

-N "" 빈 단계 사용

yes "y"어떤 상호 작용을위한.

두 개의 파일을 생성합니다

/mypath/bla
/mypath/bla.pub

여기서 bla파일이 개인이며,bla.pub 공공입니다.

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