環境
クライアント
- Windows 11
- PowerShell 7.2.0
- OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
目的
ssh <VM名>とすることでパスワードを入れずにVMに入って作業することができるようになる記事です。
この記事ではクライアント側の操作は(クライアント)、ホスト側の操作は(ホスト)と書いてあります。
鍵を作成(クライアント)
鍵を生成
ssh-keygen -t ed25519
を入力したら、Enterキーを3回押してください。
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\<ユーザー名>/.ssh/id_ed25519):
Created directory 'C:\Users\<ユーザー名>/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\<ユーザー名>/.ssh/id_ed25519.
Your public key has been saved in C:\Users\<ユーザー名>/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256: <鍵がここに表示されます>
The key's randomart image is:
+--[ED25519 256]--+
|o*=oo |
|@o+* . |
|*Bo.+ |
|Bo.= . |
|o.= = S |
| o + . |
|o = E . |
|o* B . . |
|*o=.+o=. |
+----[SHA256]-----+
作成した鍵の確認
dir .ssh
を入力して、id_ed2551
とid_ed25519.pub
があることを確認する。
Directory: C:\Users\<ユーザー名>\.ssh
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2021/11/30 11:58 411 id_ed25519
-a--- 2021/11/30 11:58 99 id_ed25519.pub
設定ファイルを作成する(クライアント)
設定ファイルの作成
notepad .ssh\config
設定ファイルに書く内容
.ssh\config
ForwardAgent yes
Host <自分が入れたい文字>
Hostname <VM名>
User <ユーザー名>
Port 22
IdentityFile ~/.ssh/id_ed25519
属性 | 値 |
---|---|
ForwardAgent | 既に書いている場合は入れなくていいです。 |
Host | VM 名だと覚えやすいですが、好きな文字を入れましょう。最終的にターミナルに「ssh <自分が入れたい文字>」を入力することで VM に ssh 接続します。 |
Hostname | VM 名、もしくは IP アドレスを入力しましょう。 |
User | VM に登録したユーザー名を入力してください。 |
Port | デフォルトは22番です。VM側で Port 番号を変更しているなら変更した Port 番号を入力してください。 |
IdentityFile | 秘密鍵の場所を入力します。今回は id_ed25519.pub の共通鍵を VM に登録するので、秘密鍵 id_ed25519 を登録します。 |
ファイル名をconfig.txtからconfigに変更する
mv .ssh\config.txt .ssh\config
公開鍵を出力(クライアント)
type コマンドで公開鍵の中身を出力します。今回は id_ed25519
の公開鍵を出力します。人によって中身は異なります。
type .ssh\id_ed25519.pub
を入力すると鍵が出力されます。
出力された鍵をVMに登録しましょう!
サーバ側(VM側)の操作(ホスト)
以下に書いてあるのは設定ファイルに書く内容で入力した<ユーザー名>と同じユーザーでログインしているときの操作です。
.ssh があることを確認してください。
cd
ls -a
. .. .bash_history .bash_logout .bashrc .cache .profile .ssh .sudo_as_admin_successful .viminfo
ある場合
chmod 700 .ssh
ない場合
install -m 700 -d ~/.ssh
公開鍵をホスト側に登録します。
vim .ssh/authorized_keys
先ほど出力した公開鍵(.pub)の記述をそのままコピペして追加してください。すでにファイル内に何か書いてあった場合、改行して追加してください。
.ssh/authorized_keys の例
ssh-ed25519 <鍵> <クライアントのユーザー名>@<クライアントのホスト名>
authorized_keys
を root ユーザーのみが読み込みと書き込みをできるようにします。
chmod 600 .ssh/authorized_keys
確認(クライアント)
自分のPCに戻って
ssh <自分が入れたい文字>
でログインできることを確認してください。
参考文献
- ssh 公開鍵認証
- ファイルの所有者や許可