비밀번호 없이 자동 ssh-keygen을 달성하는 방법은 무엇입니까?

비밀번호 없이 자동 ssh-keygen을 달성하는 방법은 무엇입니까?

ssh-keygen나중에 사용할 게시/개인 키 쌍을 호출하고 생성하는 자동화된 스크립트를 만들고 싶습니다 . 원칙적으로 모든 것이 잘 작동합니다...
ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q
암호화 키에 대한 비밀번호를 제공하라는 메시지를 묻는 것을 제외하고는요. 현재 이로 인해 자동화가 어려워지고 있습니다.

-N thepassphrase프롬프트를 방지하기 위해 명령줄 인수를 통해 비밀번호를 제공할 수 있습니다 . 하지만 난 열쇠를 갖고 싶지도 않아요.암호화로 보호됨- 키 쌍이 일반 텍스트로 표시되기를 원합니다.

이 문제에 대한 (최상의) 해결책은 무엇입니까?

"조용함/자동"을 의미하는 옵션은 -q여전히 ​​비밀번호 상호작용을 방지하지 못합니다. 아직 이런 건 못 찾았어요
ssh-keygen ... -q --no-passphrase

Lost Password의 장점과 단점에 대해 저에게 설교하거나 강의하지 마세요. 저도 알고 있습니다. 대화형 형식(스크립트가 아닌)에서 사용자는 [ENTER]를 두 번만 눌러 키를 일반 텍스트로 저장하면 됩니다. 이것이 내가 다음과 같은 스크립트에서 달성하고 싶은 것입니다.

#!/bin/bash

명령 1
명령 2
var=$(명령 3)

# 스크립트를 중지하고 비밀번호를 요청해서는 안 됩니다.
ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q

답변1

이렇게 하면 비밀번호 프롬프트가 표시되지 않고 키 쌍이 일반 텍스트로 저장되도록 설정됩니다(물론 모든 단점과 위험도 있음).

ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q -N ""

사용Windows 10 내장 SSH

전원 공급 장치 하우징:

ssh-keygen -b 2048 -t rsa -f C:/temp/sshkey -q -N '""'

주문하다:

ssh-keygen -b 2048 -t rsa -f C:/temp/sshkey -q -N ""

답변2

원하는 작업을 수행하는 가장 쉬운 방법은 다음과 같습니다(기본 파일 이름을 사용하는 예).

    < /dev/zero ssh-keygen -q -N ""

파일이 이미 존재 하는 경우 ~/.ssh/id_rsa아무것도 수정하지 않고 명령이 종료됩니다.

그렇지 않은 경우 해당 파일 이름으로 새로운 키를 받게 됩니다.

어느 쪽이든, 당신은 아무것도 덮지 않고 마지막에 열쇠가 있다는 것을 알고 있습니다.

답변3

이것은 나에게 효과적입니다.

ssh-keygen -t rsa -f /home/oracle/.ssh/id_rsa -q -P ""

-P비밀번호 옵션이며 빈 ""비밀번호입니다.

답변4

다른 사용자의 경우 Ubuntu 18.04에서 테스트합니다.

sudo -u username bash -c "ssh-keygen -f ~username/.ssh/id_rsa -N ''"

관련 정보