当サイトは、アフィリエイト広告を利用しています
自分は自宅でメインPC(Windows10)とサブPC(Linux(Ubuntu))を使っていて
メインからsshでサブにログインして仮想環境作ってたりすることが最近、増えてきた。
メインからsshでログインする際の認証時にパスワードを打つのが面倒で
公開鍵認証を設定したのでその方法をメモしておく。
前提としてサブPCにはsshで接続できること!
設定方法は下記記事でまとめています
メインPCではWindowsTerminalでGitBashを使っています。
サブPCにログインして.sshフォルダ作る
※.sshが既にある場合は不要
# サブPCにsshssh [ユーザー名]@[サブPCのホスト名orIPアドレス]# ホームディレクト直下に作るmkdir .ssh
まずはメインPCではSSHキーペア(公開鍵と秘密鍵)を生成する
# .sshフォルダに移動cd ~/.ssh# キーペア作成ssh-keygen -t rsa -f [ubuntu_key]lsubuntu_key ubuntu_key.pub
キーペアの内、公開鍵の方をサブPCに送る
scp ./ubuntu_key.pub [ユーザー名]@[サブPCのホスト名orIPアドレス]:~/.ssh/
これでサブPCの~/.ssh内に公開鍵をコピーされた
サブPCではメインPCからもらった公開鍵の
名称を変更する
# アクセス権限設定chmod 700 ~/.ssh# コピーcat ~/.ssh/ubuntu_key.pub >> authorized_keys# 確認lsauthorized_keys ubuntu_key.pub# アクセス権限設定chmod 600 ~/.ssh/authorized_keys# 不要分を削除rm ~/.ssh/ubuntu_key.pub# 確認lsauthorized_keys
ここまでで、キーの設定は終了
sshd_configファイルを編集して
公開鍵認証をONにする
# 公開鍵認証PubkeyAuthentication yes# パスワード認証PasswordAuthentication no
公開鍵を設定していない状態で上記の状態にしたり
両方ともnoにした状態でログアウトすると入れなくなるので注意!!!!
設定を反映させるために再起動する
sudo service ssh restart
作ったキーペアを使って認証して
ログインする
ssh -i ubuntu_key [ユーザー名]@[サブPCのホスト名orIPアドレス]
-i ubuntu_keyには秘密鍵のパスを指定する
デフォルトでは/home/[User名]/.ssh ディレクトリを参照するようになっている
保管先が別ならパスで指定すること
これで公開鍵認証ができるようになった。
公開鍵認証ができるようになったが
毎回、秘密鍵のパスを書くのは面倒なのでエイリアスを
設定しておく。
# エイリアスHost ubuntu# ユーザー名User [ユーザー名]# ホスト名orIPアドレスHostname [サブPCのホスト名orIPアドレス]# 公開鍵認証のみを使うかIdentitiesOnly yes# 秘密鍵のパスIdentityFile ~/.ssh/ubuntu_key
これを設定しておけば
エイリアスのみでログインできるようになる
ssh ubuntu
毎回、パスワード認証行うのは面倒なので
公開鍵認証を使う方がいい。
またセキュリティ的にも公開鍵認証の方が強力なので
パスワード認証を使う場合は、強力なパスワードを設定する必要がある