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

推薦する

CentOS7.6にMYSQL8.0をインストールする詳細な手順

1. 一般的に、CentOS では mariadb がデフォルトでインストールされているため、まず ...

VSCode の JS フォーマットでセミコロンを自動的に追加または削除する方法について

導入js コード文の末尾にセミコロンを追加しても追加しなくても問題ありません。一般的に、チームで開発...

Mysql Workbench クエリ mysql データベース メソッド

Mysql Workbench はオープンソースのデータベース クライアントです。このオープンソース...

CentOS 8 カスタム ディレクトリ インストール nginx (チュートリアルの詳細)

1. ツールとライブラリをインストールする# PCRE は、Perl 互換の正規表現ライブラリを含...

Linuxの基本コマンドmktempの詳しい説明

mptemp は安全な方法で一時ファイルまたはディレクトリを作成します。このコマンドの適用範囲: R...

MySQLデータベースのデータテーブルに関する詳細な基本操作

目次1. 現在のデータベース内のテーブルを表示する2. テーブルを作成する3. 指定されたテーブル構...

Centos7 システムでの .NET Core 2.0 + Nginx + Supervisor 環境の構築

1. Linux .NET Core の紹介Microsoft は常に自社のプラットフォームに対して...

Mysql5.7 で中国語の文字化けの問題を解決する

MySQL 5.7 を使用すると、Web ターミナル経由でデータベースに中国語の文字を書き込むと文字...

Hadoop 2.Xの新機能、ごみ箱機能の説明

ごみ箱機能をオンにすると、削除されたファイルの元のデータをタイムアウトなしで復元できるため、誤って削...

Docker ベースの Tomcat クラスタと Nginx ロード バランシングの展開の概要

目次前面に書かれた1. Ngixnイメージの作成2. Java Web (Tomcat) アプリケー...

mysql 8.0.19 win10 クイックインストールチュートリアル

このチュートリアルでは、参考までにMySQL 8.0.19のインストールチュートリアルを共有します。...

CSS3 を使用したテキスト折り紙効果のサンプルコード

序文この記事では主に、CSS3 を使用してテキスト折り紙効果を実現する例を紹介します。これは、参考と...

vue で h5 側のアプリを開きます (Android か Apple かを判断します)

1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...

sshとは何ですか?使い方は?どのような誤解があるのでしょうか?

目次序文SSHとは何かssh は何に使用されますか? sshの使い方ssh 再修正要約する序文ssh...

js の通常形式の日付と時刻に 0 を自動的に追加する 2 つのソリューション

目次背景解決策1アイデア:コード:解決策2アイデア:要約する参照する背景日付と時間をフォーマットする...