web-dev-qa-db-ja.com

SSHを使用したsshpassは機能しますが、SCPを使用したsshpassは機能しません

私の場合、sshpassを使用してscp経由でファイルを送信しようとしている状況がありますが、できません。パスワード付きのスクリプトを使用する必要がありますが、最も簡単な方法は機能しません

hostName2で、構成sshd_configなどを確認してssh-copy-idを送信する可能性はありません。「myPass」を使用する必要があります

これを見てください:

sshpass -p 'myPass' ssh -p 2122 [email protected]      

^ OK

sshpass -p 'myPass' scp ~/myDir/testPB.txt [email protected]:/chroot/Tomcat/testPB

^大丈夫

正常に動作します:

[Tomcat@hostName .ssh]$ sshpass -p 'myPass' ssh -p 2122 [email protected]
Last login: Mon Aug 22 11:41:32 2016 from xxx.xxx.xx.xxx
#################
# hostName2 #
#################

Java_HOME=/opt/Java
Tomcat_HOME = /chroot/Tomcat
LOG = /log/Tomcat , /log/Apache
LOG_Arch = /log/Arch/Tomcat , /log/Arch/Apache
STATS = /log/stats

そして問題があります:

[Tomcat@hostName .ssh]$ sshpass -p 'myPass' scp -vvv ~/myDir/testPB.txt [email protected]:/chroot/Tomcat/testPB
Executing: program /usr/bin/ssh Host 195.182.52.175, user Tomcat, command scp -v -t /chroot/Tomcat/testPB
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to xxx.xxx.xx.xxx [xxx.xxx.xx.xxx] port 22.
debug1: Connection established.
debug1: identity file /home/Tomcat/.ssh/identity type -1
debug1: identity file /home/Tomcat/.ssh/identity-cert type -1
debug3: Not a RSA1 key file /home/Tomcat/.ssh/id_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug2: key_type_from_name: unknown key type '-----END'
debug3: key_read: missing keytype
debug1: identity file /home/Tomcat/.ssh/id_rsa type 1
debug1: identity file /home/Tomcat/.ssh/id_rsa-cert type -1
debug1: identity file /home/Tomcat/.ssh/id_dsa type -1
debug1: identity file /home/Tomcat/.ssh/id_dsa-cert type -1
debug1: identity file /home/Tomcat/.ssh/id_ecdsa type -1
debug1: identity file /home/Tomcat/.ssh/id_ecdsa-cert type -1
ssh_exchange_identification: Connection closed by remote Host
lost connection

どうしましたか ?

7
MrGarfield

ssh -p 2122では代替ポートを使用しますが、scpでは使用しません。

試す

sshpass -p 'myPass' scp -P 2122 ~/myDir/testPB.txt [email protected]:/chroot/Tomcat/testPB

大文字のPに注意してください

man scpによる

-P portリモートホストで接続するポートを指定します。 -pはrcp(1)のファイルの時間とモードを保持するためにすでに予約されているため、このオプションは大文字の「P」で書かれていることに注意してください。

19
Archemar