今回は2つのサーバー間(CentOS7)で、コマンドラインからSSH接続する方法を紹介する。
具体的に説明すると、Aサーバーに対し公開鍵認証を使い、BサーバーからsshコマンドでSSH接続するといったところだ。
コンテンツ
ユーザーの追加
分かりやすいように、今回はどちらのサーバーにも「bkupusr」というユーザーを追加する。
useradd bkupusr
passwd bkupusr
※パスワードを設定
上記のコマンドをA、B両サーバーで実行する。
ユーザーを作成したら「su」コマンドでユーザーを切り替えておこう。
su bkupusr
接続元サーバーで公開鍵・秘密鍵を作成する
続いて、接続元サーバーとなるBサーバーで認証に必要となる公開鍵と秘密鍵を作成する。
ssh-keygen -t ed25519 -P ""
※Enter file in which to save the keyと聞かれるがそのままEnter
上記コマンドを実行すると、bkupusrのホームディレクトリに「.ssh」ディレクトリが作られ、中には秘密鍵「id_ed25519」と公開鍵「id_ed25519.pub」が入っている。
公開鍵を接続先サーバーに送る
次に作成した公開鍵を接続先のAサーバーへ「authorized_keys」というファイル名でコピーする。
本来scpコマンドで送信できるはずなのだが、俺の環境では上手くいかなかったので、手動でAサーバーの「/home/bkupusr/.ssh/」に「authorized_keys」を作成し、Bサーバーの「id_ed25519.pub」の中身をコピペして用意した。
BサーバーからsshコマンドでAサーバーに接続
鍵の用意ができたら、いよいよSSH接続を実行する。
ssh -i /home/bkupusr/.ssh/id_ed25519 bkupusr@xxx.xxx.xxx.xxx
これでAサーバーへログインできるはずだ。
一応sshコマンドの説明をしておくと、-iオプションで秘密鍵のパスを指定し、その後「接続先のユーザー名@ホスト名」という形式で接続先を指定している。
なお、ポート番号はデフォルトで22番指定となっているが、別のポート番号を指定する際は以下のとおり、-pオプションを指定する。
ssh -p xxxxx -i /home/bkupusr/.ssh/id_ed25519 bkupusr@xxx.xxx.xxx.xxx