키가 필요하지 않고 자동 비밀번호를 사용하여 원격 서버에 SSH로 연결하는 방법은 무엇입니까?

키가 필요하지 않고 자동 비밀번호를 사용하여 원격 서버에 SSH로 연결하는 방법은 무엇입니까?

원격 서버가 있습니다. 비밀번호를 입력하지 않고 공개키를 이용해 SSH로 접속하려고 하는데, 원격 시스템이 공개키 인증을 거부합니다.

그렇다면 가장 좋은 접근 방식은 무엇입니까? 사용해 보는 것은 어떨까요 sshpass?

답변1

편집하다

내가 참조로 사용한 링크에서 더 많은 옵션을 찾을 수 있습니다.

설치한 경우 sshpassSSH 연결을 자동화하여 각 컴퓨터에 비밀번호를 입력할 필요가 없습니다.

SSHPASS='password'
  sshpass -e  your commands here

1. 설치sshpass

ssh이것은 암호를 명령줄 인수로 전달할 수 있는 멋진 작은 프로그램입니다 . 분명히 이것은 매우 안전한 솔루션은 아니므로 "보안 고려 사항" 섹션을 읽어 보시기를 적극 권장합니다 man sshpass.

어쨌든 배포판 리포지토리에서 사용할 수 있으며 데비안 기반 시스템에서는 다음 명령을 사용하여 설치할 수 있습니다.

sudo apt-get install sshpass

RedHat 기반의 머신이 없어서 확인할 수는 없지만, 검색해 보면 알 수 있는 한여기, Fedora에 설치할 수 있어야 합니다.

sudo yum install sshpass

설치가 완료되면 간단히 실행하시면 됩니다.

SSHPASS='password'
  sshpass -e your commands

-e옵션은 sshpass변수에서 비밀번호를 얻도록 지시합니다 SSHPASS. 이는 옵션에 인수로 제공하는 것보다 안전합니다 -p.

중요한:

연결하려는 서버를 알 수 없거나 공개 키가 컴퓨터에 저장되어 있지 않으면 이 작업이 실패합니다. 이것이 작동하지 않는 것 같으면 원격 시스템에 한 번( ssh또는 ) 연결하고 공개 키를 수락하십시오.scp

인용하다

네트워크에서 scp를 자동화하는 스크립트

답변2

sshpass이는 귀하가 시스템의 유일한 사용자인 경우에 작동합니다. 그러나 이것은 확실히 아주 나쁜 생각이다. 누구든지 귀하의 컴퓨터에 쉘 액세스 권한이 있으면 귀하의 비밀번호를 얻을 수 있습니다.

일단 공개 키는 교환할 수 없습니다. 비밀번호가 포함된 파일을 보호 expect해야 합니다 . expsudo 또는 루트 액세스 권한이 있는 모든 사용자가 해킹할 수 있도록 하드 드라이브에 저장됩니다. 그러나 적어도 그것은 비교됩니다 sshpass.

다음은 구체적인 작동 방법입니다

답변3

다른 답변에서 이미 설명한 대로 사용 sshpass하지만 read비밀번호를 임시 환경 변수에 저장하는 명령과 결합합니다. 이렇게 하면 내 비밀번호가 어디에도 일반 텍스트로 기록되지 않습니다. 이것은 내가 사용하는 한 줄의 명령입니다.

read -s PASS; sshpass -p $PASS ssh <user>@<host adress>

그 후에는 비밀번호를 입력해야 하며(화면에 아무 것도 표시되지 않음) Enter를 누르면 연결이 열립니다.

관련 정보