1

SSH を使用してリモートの Linux サーバーにログオンする際のパスワード入力を自動化したいと考えています。

実行可能なbashスクリプトを作成しました

#! /bin/bash

ssh user@machine.remote.host

しかし、パスワード入力を自動化する方法はありますか?

4

5 に答える 5

8
ssh-keygen # generate a pair of RSA keys
scp ~/.ssh/id_rsa.pub user@machine.remote.host:id_rsa.tmp # copy the public key to remote host
ssh user@machine.remote.host # ssh to remote server, this time it requires password
cat id_rsa.tmp >> .ssh/authorized_keys # add the public key to authorized_keys

その後、ログオフしてパスワードなしでログオンできます。

于 2013-10-30T01:09:57.447 に答える
4

(SSH キーを介して) パスワード入力をスキップすることについて話している場合を除き、expectは対話を自動化します。

set pass "MYPASSWORD"
spawn ssh ME@MYHOST
expect -re "assword: *$";
send -- "$pass\r"
expect -re "\$ *$";
interact
于 2013-10-30T01:13:44.767 に答える
1

sshpassDebian / Ubuntu Linux にインストール

次のコマンドを入力します。 $ sudo apt-get install sshpass

sshpass の使用方法を教えてください。

server.example.comというパスワードで呼び出された ssh サーバーにログインしますt@uyM59bQ

$ sshpass -p 't@uyM59bQ' ssh username@server.example.com

シェル スクリプトでは、ホスト キー チェックを無効にする必要がある場合があります。

$ sshpass -p 't@uyM59bQ' ssh -o StrictHostKeyChecking=no username@server.example.com

rsync を使用して /var/www/html をバックアップするにはどうすればよいですか?

パスワード認証を使用して SSH 経由で rsync を実行し、コマンド ラインでパスワードを渡します。

$ rsync --rsh="sshpass -p myPassword ssh -l username" server.example.com:/var/www/html/ /backup/

于 2013-10-30T01:10:12.143 に答える
0

私はこれを広範囲に調べました。これが、Pythonを学ぶことにした理由です。短い答えは「いいえ」です。標準の bash では、パスワードを ssh プロンプトに渡す方法はありません。この機能を提供できるexpectやsshpassのようにインストールできるものがいくつかありますが、それらを使用するかどうかは、スクリプトを実行しているサーバーにフリーローミングがあるかどうかによって異なります。Pythonを学びたいと思ったことがあるなら、これは学ぶのに良いものです. この機能が組み込まれており、使いやすい「Fabric」という python モジュールがあります。

申し訳ありませんが、これは本当の答えではありません。私はまさにあなたがいた場所にいたので、私のアドバイスを伝えようと思いました....

于 2013-10-30T03:16:55.540 に答える