SFTP自動ログイン

SFTP自動ログイン

sftpを使って自動的に接続し、同じコマンドにパスワードをパラメータとして渡して、自動的にログインして一度実行する方法を知りたいです。

例:

私はこれをスクリプトで書いて、これを1つの文で完了しようとしています。

乾杯、

答え1

パスワードのないSSH / SCPを実装する方法は4つあります。

  1. クライアントは新しいパスワードなしのSSHキーを生成してauthorized_keysサーバーに追加します。

  2. 上記と同じですが、scpを実行する前にキーにパスワードを設定し、ssh-agentそれを使用してロックを解除します。

  3. scpが実行される前に、SSH接続共有(適切に設定する必要がある場合がありますControlPersist)を使用してサーバーにログインしてください。 scpは同じ接続を再利用し、パスワードは必要ありません。

  4. 秘密のスクリプトを使用してパスワードを入力しますが、ssh / scpはそれを積極的にブロックするので、望むほど簡単ではありません。

最初の2つのオプション(オプション2がより安全です)を見て、Authorized_keysが利用できない場合は、オプション3を調べることをお勧めします。これを行う方法に関するドキュメントがたくさんあります。

オプション4が可能です(他の人がソリューションを公開したのを見ました)。ただし、これを行うには、コンピュータの他のユーザーやスクリプトを読むことができるすべての人にパスワードが公開されることに注意してください。 SSHキーは、ルートを除くすべてのユーザーによって保護され、パスワードで保護されたキーはルートによっても保護されます(Ssh-agentハッカーを除く)。

答え2

使用SSHパスワード

sshpass -p <password> sftp user@host

答え3

次のコマンドを実行します。

ssh-keygen -t rsa -b 2048

それから

touch ~/.ssh/config

次に、次のように構成を編集します。

# host-specific options
Host enigma
    HostName mydomain.com
    Port 2547
    ServerAliveInterval 120
User YOURUSERNAME
    TCPKeepAlive Yes

今すぐ接続

ssh-copy-id [email protected]

構成ファイルのホスト名を使用してサーバーに接続できる必要があります。つまりssh enigma

私の設定ファイルには約20の接続があり、すべて短い参照なので、毎回ドメインとパスワードを入力する必要はありません。

これのセキュリティ上の欠陥は、他のホストファイルを生成しないと、すべてのSSH接続が影響を受けることです。 1つのファイルにすべて含まれています。パスワードで保護されています。したがって、ファイルに20個の接続を保存すると、そのパスワードが破損すると20個の接続がすべて破損します。

個人用、業務用、その他複数のホストファイルを使用しているため、パスワードが流出しても大きな問題にはなりません。

関連情報