設定 - SSH
概要
SSHサーバを構成し、リモート端末からサーバに接続して操作できるようにする。
SSHサーバは、CentOSをMinimal Installした場合やopenSUSEを最小インストールした場合でも、標準でOpenSSHがインストールされるため、追加インストールする必要はない。
OpenSSHのパスワード認証
CentOSおよびSUSEでは、SSHは標準で自動起動設定になっているため、パスワード認証方式でのログインが可能となっている。
したがって、最低限必要な設定として、セキュリティを考慮して以下に示すようにrootアカウントの直接ログインの禁止設定を実施しておけばよい。
まず、SSHの設定を行う。
sudo nano /etc/ssh/sshd_config PermitRootLogin no # コメントを解除(rootログイン禁止)
次に、上記で行ったSSHの設定を反映させるため、sshdを再起動する。
sudo systemctl restart sshd
もし、Firewalldを有効にしている場合は、SSHサービスの許可が必要である。
なお、ポート番号の変更をしていない場合、SSHのポートはTCP 22番である。
sudo firewall-cmd --permanent --add-service=ssh
Firewalldの設定を反映させるため、Firewalldを再起動する。
sudo firewall-cmd --reload
SSHのポート番号の変更
SSH接続ではデフォルトでポート番号22を使用している。
以下のコマンドを実行し、ポート番号の変更を行う。
Port 22と記載している箇所が存在するので、ポート番号49152 - 65535の間のポート番号に変更して保存する。
sudo nano /etc/ssh/sshd_config
次に、上記で行ったSSHの設定を反映させるため、sshdを再起動する。
sudo systemctl restart sshd
SSHPassのインストール
SSHPass(Non-interactive SSH Password Authentication)を使用すると、コマンドにてssh接続のパスワードを指定することができるので、
sshコマンドと合わせて1行でSSH接続できるようになる。
パッケージ管理システムを使用してインストール
# CentOS sudo yum install epel-release sudo yum update sudo yum install sshpass # SUSE sudo zypper install sshpass
ソースコードをコンパイルしてインストール
ここでは例として、ホームディレクトリにインストールする。
下記のURLからSSHPassのソースコードをダウンロードする。
https://sourceforge.net/projects/sshpass/
ダウンロードしたファイルを解凍して、任意のディレクトリに移動する。(ここでは、sshpassというディレクトリとする)
cd ~/sshpass
以下のコマンドを実行して、SSHPassをインストールする。
./configure --prefix=/home/<ユーザ名>/sshpass make make install
.profileファイルに以下の環境パスを追加する。
export PATH="$HOME/SSHPass/bin:$PATH"
確認
以下のコマンドを実行して、SSHPassが正常にインストールできたか確認する。
sshpass -V
使用方法
SSHPassを使用して、パスワードを指定する例を示す。
sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名またはIPアドレス>