xclip 사용

xclip 사용

ssh-addArch Linux에서 모든 rsa 키를 자동으로 잠금 해제하는 스크립트를 작성하려고 합니다.

내 비밀번호(gpg 키를 사용하여 암호화됨)를 저장하는 데 사용하고 있으며 입력 내용을 다음 pass으로 전달하려고 합니다 .ssh-add

rsa_dir=~/.ssh
cd $rsa_dir
ls -1 id_rsa* |
grep -v '.pub' |
while read file; do
  # example: file == id_rsa_github -> keyname == rsa/github
  key_name=${file/id_rsa_/rsa/}
  # pass will prompt (only once) for the master password, then print out the request password to stdout
  pass $key_name | ssh-add $file
done

그러나 오류가 발생합니다.

ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory

하지만 방금 실행하면 ssh-add $file비밀번호를 묻는 메시지가 표시되고 제대로 작동합니다. 비밀번호를 얻기 위해 기본 ssh-askpass를 사용하고 싶지 않습니다. 내 스크립트를 사용해야합니다.

누구든지 나를 도와줄 수 있나요?

답변1

저도 당신과 같은 상황이어서 이를 수행하는 두 가지 방법을 찾았습니다.

xclip 사용

pass yourpassword | xclip -selection clipboard ; ssh-add yourprivatekey

그런 다음 일반적으로 비밀번호를 붙여넣는 데 사용하는 키를 사용하면 됩니다. 기억하세요.클립보드, 따라서 귀하가 유일한 사용자가 아닌 경우/신뢰할 수 없는 네트워크에 있는 경우 제3자가 귀하의 비밀번호를 알아낼 수 있습니다.

기대치를 활용하라

PASS=`pass yourpassword`
/usr/bin/expect <<EOF
set timeout -1
spawn ssh-add privatekey
match_max 100000
expect -exact "Enter passphrase for ~/.ssh/privatekey: "
send -- "$PASS\r"
expect eof
EOF

작동해야합니다. 위의 개인 키 경로를 자유롭게 변경하거나 autoexpect일종의 작업 스크립트를 생성해야 하는 스크립트에서 사용하세요.ssh-add yourprivatekey

다른 아이디어

제가 테스트하지 않았거나 제대로 작동하지 못한 것은 다음과 같습니다.

  • 실행 중인 세션에 키를 보내는 몇 가지 방법이 있는 screen또는 를 사용할 수 있습니다 .tmux

  • xclip위의 방법에 유용할 수 있는 키를 보내는 데 사용할 수 있는 몇 가지 명령이 있습니다 . sendkey존재하다깃허브그리고 xdotool생각난다.

관련 정보