0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2のUbuntsuにSSH接続する

Last updated at Posted at 2022-04-15

UbuntsuにSSH接続

Ubuntuでは、デフォルトではクリップボードが使えないとのこと。

いろいろ設定して有効にできるようだが、結構めんどくさそうだった。
いつも使っているSSHクライアントから操作すれば、慣れた使い方ができるのではと思い接続を試みた。
簡単にいくと思ったが、苦戦した。(2時間くらい)

※ やる意味があるのかどうかは知りません。

SSH接続の基本

SSH接続の基本として、以下は押さえたい。

  • サーバー側の設定では、ユーザー名とパスワードのみで接続できる。
  • 公開鍵と秘密鍵を生成する。
  • サーバー側には公開鍵を登録する。
  • クライアントは秘密鍵を用いてサーバーにSSH接続する。
  • サーバーは22番ポートを開けている。
  • サーバーはsshのデーモンが動いている。

パスワードで接続する方法

まずは、Ubuntu(サーバー側)の設定
まずは、以下のコマンドでopensshをインストールする。
つまり、SSHの接続先として準備をする。

sudo apt-get install openssh-server

以下のコマンドで、設定ファイルを開いて、編集する。

sudo nano /etc/ssh/sshd_config

/etc/ssh配下に各種設定ファイルが存在する。

PasswordAuthentication をyesにして、パスワードでのSSH接続を許可する設定に変更。

# 変更前
PasswordAuthentication no

# 変更後
PasswordAuthentication yes

設定変更後、以下のコマンドで再起動し、設定を反映させる。

sudo /etc/init.d/ssh restart

# 現在の状態を確認
sudo /etc/init.d/ssh status

また、22番ポートを開放する。

sudo ufw allow 22

以下のコマンドで、サーバー側のIPアドレスを確認。

ifconfig

コマンドがないと言われたら以下でコマンドを使えるようにする。

sudo apt install net-tools

eth0:inetの値がホストのIPアドレスになる。

あとは、SSHクライアントで

  • IP
  • ユーザー名
  • パスワード

でSSH接続。これでできるはず。
あとは、後述する公開鍵での接続に切り替えるのがセキュリティ上望ましい。

トラブルシューティング

Permission denied (publickey)

と言われる場合には。
サーバー側のパスワードでの接続OKの設定が反映されていない。
そのため、登録されていない鍵で認証しようとしてエラーになる。

また、鍵を使用した接続を試みている際は、
以下のコマンドでデバッグログを表示することができる。

ssh -vT <ユーザー名>@<IPアドレス>

公開鍵でのアクセス

まずは、サーバー側の設定

サーバー側には、公開鍵が登録されている必要がある。

具体的には、~/.ssh/authorized_keys に公開鍵が登録されている必要がある。

※そもそもサーバー側に~/.sshディレクトリがない場合は、以下のコマンドを実行すると、id_rsa id_rsa.pubが作られると同時にディレクトリ.sshも作成される。

ssh-keygen

クライアント側の設定

上記の⑥、⑦を参考に。

powershellから、以下のコマンドで生成する。

ssh-keygen -t rsa

Windowsでは、C:\Users\User1\.ssh配下にid_rsaid_rsa.pubが作られる。

※Linuxの場合は、/home/user/.ssh/id_rsaに作られる。

###サーバー側に作成した公開鍵を登録する。
場所は ~/.ssh 直下で、ファイル名は authorized_keys とします。このファイルの場所と名前は設定で変更することができますが、特に支障がなければデフォルトのものにしておくことをおすすめします。

公開鍵をアップロードするのがめんどうな場合は公開鍵をクリップボードにコピーして、サーバ側に authorized_keys を生成してペーストするという原始的な方法でも可です。

接続してみる。

サーバー側のsshdのデーモンを起動。

sudo /etc/init.d/ssh start

エラーが発生

sshd: no hostkeys available -- exiting. sshd

ホストキーがないと。。

以下のコマンドで解決

sudo ssh-keygen -A

ssh-keygenのオプション
-A ホスト鍵(/etc/ssh/ssh_host_key、/etc/ssh/ssh_host_dsa_key)を生成する(root権限が必要)

これでsshdのデーモンが起動したので、SSHクライアントから接続を試みる。

秘密鍵を用いて、接続できた。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?