これらのLinuxコマンドを使用してリモートSSH接続を効率的に管理する
1つ以上のリモートサーバーを実行している場合、通常は1日を通して常にログインすることに時間を費やしています。
しかし、それはこのようである必要はありません。エイリアスのみを使用してSSH経由で効率的にログインし、単一のファイルまたはディレクトリを転送し、リモートSSHコマンドを実行し、リモートサーバーをローカルディレクトリに簡単にマウントする方法を学びました。
SSH構成ファイル
時間を大幅に節約できるのは、 〜/ .ssh / configにあるSSH構成ファイルです。次のコマンドを使用してサーバーへのログインに使用するすべてのSSHキーを格納するディレクトリを作成することから始めます。
mkdir -m 0600 $HOME/.ssh_keys
次に、すべてのSSHキーファイルをこのディレクトリにコピーします(例:clienta.pem、clientb.pemなど)。次に、次のコマンドを実行して、テキストエディタで〜/ .ssh / configファイルを開きます。
nano ~/.ssh/config
以下は、リモートサーバーとのSSH接続を確立するエントリの例です。
host clienta
hostname 124.58.2276.80
user ubuntu
IdentityFile ~/.ssh_keys/clienta.pem
上記のような行のセクションを〜/ .ssh / configファイルに追加します(必要なサーバーごとに1つ)。次に、 Ctrl + Xを押してファイルを保存して閉じ、プロンプトに従います。保存したら、次の簡単なコマンドを使用して、ターミナル内の任意のディレクトリからSSH経由で任意のサーバーにログインできます。
ssh clienta
これにより、 〜/ .ssh / configファイル内で指定したclientaホストの下の情報を使用してサーバーに即座にログインします。
Scp / Rcpでファイルを転送する
永続的なログインセッションを作成せずに、次のようなscpコマンドを使用して単一のファイルまたはディレクトリをリモートサーバーに簡単にアップロードできます。
scp report.pdf clienta:~/
上記のコマンドは、report.pdfファイルをローカルコンピューターから上記のセクションで定義したclientaサーバーのホームディレクトリにアップロードします。次のようなホームディレクトリ以外のディレクトリにアップロードできます。
scp about.html clienta:/home/clienta/public_html
上記は、about.htmlファイルをリモートclientaサーバーの/ home / client / public_htmlディレクトリにアップロードします。次のような-rオプションを使用して、ディレクトリ全体をアップロードすることもできます。
scp -r Documents clienta:~/docs
これにより、 〜/ Documentsディレクトリ全体がローカルコンピュータからリモートサーバーの〜/ docsディレクトリにアップロードされます。
ファイルのダウンロード
同様に、次のようなrcpコマンドを使用して、永続的なログインセッションを作成せずに、ファイルまたはディレクトリをローカルコンピュータにダウンロードできます。
rcp clienta:~/public_html/about.html myproject/about.html
上記は、リモートclientaサーバーからpublic_html / about.htmlファイルをダウンロードし、ローカルコンピューターのprojects /about.htmlファイルに配置します。
リモートSSHコマンドを実行する
もう1つの簡単なヒントは、次のような永続的なログインセッションなしでリモートサーバー上で単一のLinuxコマンドを実行できることです。
ssh clienta ls
上記は、リモートクライアントサーバーでlsコマンドを実行し、サーバーにログインしたままにせずにすべてのファイル/ディレクトリを一覧表示します。たとえば、サーバーを再起動する場合は、次を使用できます。
ssh clienta /sbin/shutdown -rf now
ローカル/ binディレクトリ
ユーザーアカウントに対してローカルな/ bin /ディレクトリを作成して、リモートサーバーに簡単にマウントできるようにすることで、これを拡張してみましょう。コンピューターでターミナルを開き、次のコマンドを実行して/ bin /ディレクトリを作成します。
mkdir -m 0755 ~/bin
次に、次のコマンドを使用して、テキストエディタで〜/ .profileファイルを開きます。
nano $HOME/.profile
ファイルの一番下までスクロールし、クリップボードにコピーして次の行を追加し、 Ctrl + Shift + Vを押してターミナル内に追加します。
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Ctrl + Xを押してファイルを保存して閉じ、プロンプトに従います。これにより、 .profileファイルが保存され、実行しようとしているコマンドがないか、新しく作成されたローカル/ bin /ディレクトリがチェックされます。
リモートマウントコマンドの追加
まず、次のコマンドを使用して、 sshfsがコンピューターにインストールされているかどうかを確認します。
sshfs --version
これで現在のバージョンのsshfsが出力されれば、準備は完了です。そうしないと、「コマンドが見つかりません」というエラーが表示された場合、次のコマンドを使用してsshfsをインストールできます。
sudo apt-get -y install sshfs
次に、リモートサーバーにマウントされたすべてのディレクトリを含む/ mnt /ディレクトリを作成します。ターミナル内で次のようなコマンドを実行します。
mkdir -m 0755 ~/mnt
mkdir -m 0755 ~/mnt/clienta
mkdir -m 0755 ~/mnt/clientb
マウントする可能性のあるリモートサーバーごとに1つのサブディレクトリを作成し続けます。次に、実行するシェルコマンドを作成しましょう。たとえば、 clientaサーバーの場合は、ターミナルで次のコマンドを実行してファイルを開きます。
nano ~/bin/mount_clienta
必要に応じて以下の行を適切なサーバー情報で変更し、 Ctrl + Shift + Vを押して、ターミナル内の空白のテキストエディターにコピーして貼り付けます。
#!/bin/bash
sshfs -o IdentityFile=~/.ssh_keys/clienta.pem ubuntu@192.168.0.24:/var/www ~/mnt/clienta
Ctrl + Xを押してファイルを保存して閉じ、プロンプトに従ってファイルを閉じます。最後に、次のコマンドを実行して、ファイルのアクセス許可を変更して実行可能にします。
chmod 0755 ~/bin/mount_clienta
これで、 clientaのリモートサーバーにマウントしてファイルを転送する必要があるときはいつでも、ターミナル内の任意のディレクトリから次のコマンドを実行できます。
mount_clienta
これで、ローカルコンピュータの〜/ mnt / clientaにあるディレクトリが、リモートサーバーの/ var / wwwディレクトリにマウントされます。ローカルディレクトリと同じように、ディレクトリとの間でファイルのコピーを開始できます。必要な操作はリモートサーバーで実行されます。
より効率的な接続管理
上記のヒントが、リモートサーバーへの接続の管理を合理化し、より効率的にするのに役立つことを願っています。この記事では、エイリアスのみを使用してSSH経由でログインし、単一のファイル/ディレクトリを転送し、リモートSSHコマンドを実行し、ローカルディレクトリをリモートサーバーに簡単にマウントする方法を可能にする〜/ .ssh / configファイルについてすべて学びました。