bash スクリプトで ssh/scp コマンドにパスワードを渡す方法の詳細な説明

bash スクリプトで ssh/scp コマンドにパスワードを渡す方法の詳細な説明

SSHPASSをインストールする

最新のオペレーティング システムでは、sshpass パッケージはデフォルトのパッケージ リポジトリで利用できます。次のコマンドを使用してシステムにインストールできます。

Debian の場合:

$ sudo apt sshpassをインストール

CentOS の場合:

$ yum --enablerepo=epel -y sshpassをインストールします

SSHPASSの使用

sshspass は sshspass 環境変数を使用してユーザー パスワードを保存します。まず sshspass 変数とパスワードを使用してから、このコマンドを使用する必要があります。以下は sshspass を使用した簡単なシェル スクリプトです。

エクスポート SSHPASS=ry3AvbWO0oupYX9HCMzp0Axx

sshpass -e scp testfile.csv [email protected]:/uploads/

以下のようにsshpassを使用してsshコマンドを実行することもできます。

sshpass -e ssh ユーザ@example.com

シェルスクリプトでパスワードを要求する SCP コマンドの問題を解決する

キーファイルを使用します。

ここでは、ホスト A (192.168.100.3) を使用してホスト B (192.168.100.4) のファイルを取得することを想定しています。

ペアリング キーを生成するには、ホスト A で次のコマンドを実行します。

ssh-keygen -t rsa

プロンプトが表示されたら Enter キーを押します。公開鍵は、ユーザー ディレクトリの下の .ssh ディレクトリに保存されます。たとえば、root は次の場所に保存されます。

/root/.ssh/id_rsa.pub

.ssh ディレクトリ内の id_rsa.pub ファイルをホスト B の ~/.ssh/ ディレクトリにコピーし、authorized_keys に名前を変更します。

ホスト A でコマンドを実行して、ホスト B との信頼関係を確立します (例: ホスト B の IP が 192.168.100.4 であると仮定)。

scp ~/.ssh/id_rsa.pub 192.168.100.4:/root/.ssh/authorized_keys

次に、scp コマンドと ssh コマンドを使用して、パスワードなしでホスト B からファイルを取得します。ssh 192.168.100.4 Enter キーを押すと、パスワードは不要になります。

注: 実際には、id_rsa.pub の内容を他のマシンの authorized_keys に追加するだけです。

以下もご興味があるかもしれません:
  • Vue-CLI 3 scp2 プロジェクトのサーバーへの自動デプロイ方法
  • Python は scp を呼び出してファイルをサーバーにアップロードする例
  • Windows で秘密鍵を介して ssh と scp を使用する方法
  • Pythonはscpコマンドを実行して、ファイルとフォルダをリモートホストのディレクトリにコピーします。
  • Linuxはscpコマンドを使用してファイルをローカルコンピュータにコピーし、ローカルファイルをリモートサーバーにコピーします。
  • Python Pexpectはパスワード入力によるscpコピーの方法を実装します
  • Linux で scp コマンドを使用してファイルをリモートでコピーする方法の詳細な説明
  • scp は Linux サーバーから別の Linux サーバーにデータをコピーします
  • Androidでscp操作を実装する方法

<<:  js ドラッグ アンド ドロップ テーブルでコンテンツ計算を実現する

>>:  MySQLのサブクエリユニオンの効率性についての簡単な説明と

推薦する

CSS Houdini でダイナミックな波効果を実現

CSS Houdini は、CSS 分野における最もエキサイティングなイノベーションとして知られてい...

nginx プロキシ サーバーで双方向証明書検証を構成する方法

証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...

高速でクールな揺れアニメーション効果を実現するCSS

1. Animate.css の紹介Animate.css は、Web プロジェクトですぐに使用で...

埋め込みJavaScriptと外部リンクの基本的な応用方法

目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...

ウェブデザインでは、まずウェブサイトの包括的なイメージの位置付けが必要です。

⑴ 内容によって形式が決まります。まず内容を充実させ、次にブロックに分割し、トーンを決め、最後に細部...

Vueのコンポーネント値の転送から始まるオブザーバーモードの詳細な説明

目次オブザーバーパターンVue パス値最初のステップは、main.jsにバスを登録することです。 2...

Reactのコンポーネント共同利用実装

目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...

MySQL 8.0.11 MSI バージョンのインストールと構成のグラフィック チュートリアル

この記事では、MySQL 8.0.11 MSIバージョンのインストールと設定のチュートリアルを参考ま...

CSS3 で翻訳効果 (transfrom: translate) を実装する例

移動を実現するためにtranslateパラメータを使用しますtranslateX: X 軸に沿って移...

SeataがMySQL 8バージョンを使用できない問題を解決する方法

考えられる理由: Seata が MySQL 8 をサポートしない主な理由は、接続ドライバーがバージ...

MySQL 圧縮版 zip のインストールに関する問題の解決策

本日、MySQLの圧縮版をインストールする際に問題が発生しました。サービスが起動できず、2、3時間苦...

Linux の Centos7 に Mysql5.7.19 をインストールする詳細なチュートリアル

1. MySQLをダウンロードするURL: https://dev.mysql.com/downlo...

Linux lessコマンド例の詳細な説明

ファイル名が少ないファイルを表示ファイル名を少なく | grep -n コンテンツを検索内容に応じて...

VUE+Canvasは、インゴットを受け取る富の神のゲームを実装します

前回のキャンバス ゲーム シリーズへようこそ: 《VUEがFlappy Birdを実装しました〜〜〜...

Centos8 に nginx1.9.1 をインストールする詳細な手順

1.17.9 本当はもっと美味しいNginx のダウンロード アドレス: https://nginx...