상태:
- 내 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
다른 평론가들이 언급했듯이).