sshfsコマンドラインのユーザー名とパスワード

sshfsコマンドラインのユーザー名とパスワード

次のコマンドを使用して小さなバックアップスクリプトを作成していますsshfs

sshfs backup_user@target_ip:/home /mnt/backup

このコマンドにパスワードを含める方法はありますか?

それとも、FTP / SFTPに加えてログインパスワードを含めることができる他のファイル転送ソリューションはありますか?

答え1

'sshfs password'次へ<<<Bashで作業する-o password_stdin

sshfs -o password_stdin backup_user@target_ip:/home /mnt/backup <<< 'sshfs password'

パスワードは一重引用符で囲まれています。ありがとう、カイル!

答え2

-o password_stdinfreeBSDのようなすべてのシステムで動作していないようです。 sshfsと連携してトリックを実行する

インタプリタを使用することもできます。別の解決策は、例えば/var/wwwディレクトリをバックアップするとします。expect

sshpass

サポート:

name=$(date '+%y-%m-%d')
mkdir /backup/$name && tar -czvf /backup/$name/"$name.tar.gz" /var/www

バックアップサーバーへのバックアップファイルのアップロード

sshpass -p "your_password" scp -r backup_user@target_ip:/home/ /backup/$name

これにより、今日のバックアップを含むディレクトリがアップロードされます。

しかし、しかし、上記のように、最良の(安全で簡単な)方法はSSHキーペアを使用することです。
唯一の不便な点は、ペアリングする必要がある各サーバーでキー生成プロセスを一度だけ実行する必要があることですが、これがより優れています。バックアップしたいすべてのサーバーにパスワードをプレーンテキストで保存します:),

正しい方法でキーペアを生成する

  • ローカルサーバー上

    ssh-keygen -t rsa
    
  • リモートサーバーから

    ssh root@remote_servers_ip "mkdir -p .ssh"
    
  • 生成された公開鍵をリモートサーバーにアップロード

    cat ~/.ssh/id_rsa.pub | ssh root@remote_servers_ip "cat >> ~/.ssh/authorized_keys"
    
  • リモートサーバーの権限の設定

    ssh root@remote_servers_ip "chmod 700 ~/.ssh; chmod 640 ~/.ssh/authorized_keys"
    
  • ログイン

    ssh root@remote_servers_ip
    
  • SSHプロトコルv2の有効化

    /etc/ssh/sshd_configから「protocol 2」のコメントを削除します。

  • SSHDで公開鍵認証を有効にする

    /etc/ssh/sshd_config から「PubkeyAuthentication yes」のコメントを外します。

  • /etc/ssh/sshd_configのStrictModesがyesに設定されている場合

    restorecon -Rv ~/.ssh
    

答え3

マニュアルによると、-o password_stdin標準入力からパスワードを読み取るためのオプションがあります。これはリダイレクトかもしれません。一度も書いたことがないので推測してみます。

つまり、本質的に安全ではないこのソリューションを使用しないことをお勧めします。

ssh個人/公開鍵システムとうまく機能します。シンプルで安全です。パスワードを入力したり、シェルスクリプトにプレーンテキストで書く必要はありません。公開鍵をサーバーにプッシュしてすぐに接続します。

答え4

覚えておくべきことの1つは、その-o password_stdinオプションを使用すると、sshfsが既知のホストにホストに接続するか(最初に接続して追加されていない場合)に尋ねるために機能しないように見えることです。ファイル)。一括実行すると、sshfsが尋ねたことを決して見ることができません。このような状況を防ぐための解決策は次のとおりです。

  1. -o StrictHostKeyChecking=nosshfsにオプションを追加する
  2. 既知のホストファイルにホストを追加するには、手動でsshfsを一度実行します。

関連情報