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のサブクエリユニオンの効率性についての簡単な説明と

ブログ    

推薦する

MySQL 8.0.13 のダウンロードとインストールのチュートリアル(画像とテキスト付き)

MySQL は最もよく使用されるデータベースです。詳しく知るには、コンピュータにインストールする必...

tomcat8の最新のLinuxインストールプロセス

ダウンロード参考:ダウンロードするコアパッケージを選択してくださいダウンロード後、ファイルをサーバー...

Linux ソフトウェアのインストール場所を確認する簡単な方法

1. ソフトウェアのインストールパスを確認します。 Linuxソフトウェアをインストールできる場所は...

VMwareがwin10ホームバージョンに64ビットオペレーティングシステムをインストールできない問題を解決します

問題の説明VMware Workstationが新しい仮想マシンを作成し、64ビットオペレーティング...

vue3のテレポート瞬間移動機能の使い方を詳しく解説

vue3テレポート瞬間移動機能の使用は参考用です。具体的な内容は次のとおりです。テレポートは通常、瞬...

axios を使用してプロジェクト内の複数の繰り返しリクエストをフィルタリングする方法

目次1. はじめに:この場合、通常は 2 つのアプローチがあります。 2. CancelToken ...

純粋な CSS3 を使用して、円の動的な光る特殊効果アニメーションを実装するためのサンプル コード

この記事では、主に、円形のダイナミックな光る特殊効果アニメーションを実現するための純粋な CSS3 ...

html ページ!--[IE の場合]...![endif]--使用方法の詳細な紹介

コードをコピーコードは次のとおりです。 <!--[IEの場合]><script t...

ページの下部にHTMLフッターを配置する簡単な方法

要件:ページ コンテンツが短く、ブラウザーの高さをサポートできない場合でも、フッターをウィンドウの下...

Django は Pillow を使用して検証コード機能を簡単に設定します (Python)

1. モジュールをインポートし、検証状態を定義する PIL から Image、ImageDraw、...

Vueは秒殺しのカウントダウンコンポーネントを実装する

この記事では、2番目のキルカウントダウンコンポーネントを実装するためのVueの具体的なコードを参考ま...

MySQLクエリデータを時間別に表示します。データがない場合は0を入力してください。

需要背景統計インターフェースでは、フロントエンドは 2 つの配列を返す必要があります。1 つは 0 ...

DockerはCMDまたはENTRYPOINTコマンドを使用して複数のサービスを同時に起動します

要件: Celery は Django に導入されています。Django プロジェクトを開始するとき...

JSオブジェクトの走査順序の詳細な説明

JavaScript ではオブジェクトを走査する順序は固定されていないと聞いたことがある人もいるかも...

JavaScriptオフセットは、ウィンドウ内でのマウス座標の取得とモジュールのドラッグを実装します。

オフセットOffset はオフセットです。関連プロパティの offset シリーズを使用すると、次の...