SSH 비밀번호 제공 [중복]

SSH 비밀번호 제공 [중복]

상태:

  • 내 IP는 192.168.1.1입니다.$IP
  • 사용자 이름: 루트(또는 기타)$USER
  • 비밀번호: foo$PASSWD

$PASSWD를 SSH에 제공하는 방법이 있나요? 좋다

 PASSWORD_VAR=$PASSWD ssh -l $USER $IP
  • 사용자는 비밀번호를 볼 수 있으며,
  • 사용자는 일반적인 대화형 쉘 세션에 "로그인"해야 합니다.
  • 원하는 경우 데스크탑 Linux에 somme 패키지를 설치할 수 있습니다.

ssh(1)을 읽어도 아무런 단서도 얻지 못했습니다. 이와 유사한 것이 창 세계(예: Kitty)에 존재합니다. 이제 Unix(사용 가능한 경우 suse 또는 unbuntu)에서도 동일한 작업을 수행하고 싶습니다.

공개/개인 키 쌍을 설정하는 방법을 알고 있지만 그건 주제에서 벗어났습니다.

답변1

장착이 가능하다면 가능합니다SSH패스, 다음을 실행할 수 있습니다.

sshpass -p 'password' ssh 192.168.1.1

답변2

ssh기본적으로는 이 작업을 수행하지 않으며 설계되었습니다. 이는 스크립트에 일반 텍스트 비밀번호를 포함시키는 것이 근본적으로 나쁜 생각이기 때문입니다. 특히 이후 - 단일 명령줄에 지정하면대개ps모든 사용자가 볼 수 있는 목록 에 나타납니다 . 그러므로 더 나은 습관을 장려하는 것을 의도적으로 어렵게 만드십시오. 공개 및 개인 키 쌍은 ssh-agent이 요구 사항을 없애는 데 큰 도움이 됩니다.

정말로 필요한 경우 expect다음과 같이 할 수 있습니다.

#!/usr/bin/expect -f

spawn /usr/bin/ssh -n username@hostname 
expect "password:"
send "Password\n";
interact

(또는 sshpass다른 평론가들이 언급했듯이).

관련 정보