| categories:server

SSH簡単ログイン

あっちにアクセス、こっちにアクセス、で、ちょっとWifi通信が切れたりと、なかなか面倒が増えてストレスになりつつあるので、SSHをパスワードなしでログインできるようにしました。公開鍵をサーバーに登録するだけの作業でできます。

追記7月10日:openWrtでの設定を一番下に追加しました。

鍵をつくる

まずは鍵が必要です。一発でできます。鍵の名前を変えたい場合は-f <<鍵の名前>>を追加します。

$ ssh-keygen -t rsa
$ ssh-keygen -t rsa -f <<鍵の名前>>

デフォルトでは秘密鍵id_rsaと 公開鍵id_rsa.pub が作られます。

今回はローカルサーバーのみで使う予定なので、パスフレーズは入力していませんが、 セキュリティー上設定しましょう。10文字以上でセキュリティー的にかなり安全になるようです。

公開鍵をパイ・サーバーに転送する

公開鍵をサーバーへ持って行きます。ssh+cpなのかscp ~/.ssh/id_rsa.pub <<USER>>@<<SERVER>>:<<保存先>>で取り敢えず完了。

$ scp ~/.ssh/id_rsa.pub pi@10.0.0.65:~/
pi@10.0.0.65's password:
id_rsa.pub
$

クライアント側での最初の設定は以上です。


パイ・サーバーでの作業

サーバーに今まで通りパスワードを使ってログインします。

公開鍵を登録

サーバーで受け取った公開鍵をssh接続許可リストauthorized_keysに登録します。そしてサーバー上ではssh関連のフォルダー・ファイルは作成されていないと思います。 まずは.sshフォルダーと空のファイルauthorized_keysを作ります。同時にアクセス権の設定も行います。

$ mkdir ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

そして、公開鍵をauthorized_keysに登録します。書き込まれているか確認して受け取った公開鍵も消してしまいます。 (同じ端末で作業をしてるから、コピペでも良かったかな。。と今更ながら思う。)


$ cat id_rsa.pub >>  ~/.ssh/authorized_keys
$ cat ~/.ssh/authorized_keys
$ rm id_rsa.pub

sshサーバーの設定

パイ側で/etc/ssh/sshd_configを編集し、rsa公開鍵認証を有効にします。 root権限で作業を行います。次いでにルートでのログインも無効にします。

$ sudo -Es
# vi /etc/ssh/sshd_config

rootログインの無効化、公開鍵でのアクセス設定、パスワード認証の無効化を設定します。以下の行を見つけコメントを外し、yes/noを編集をします。終了後、サービスを再起動systemctl restart sshします。

PermitRootLogin prohibit-password
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no

# systemctl restart ssh

ssh接続設定

クライアントに戻り最後の仕上げです。

アクセスを簡単にするために~/.ssh/configを編集します。

下記のように、ホスト名、アドレス、ポート番号、サーバーに送った公開鍵の秘密鍵のファイル名id_rsaを書き加えます。書き加えます。

Host tacos 
 Hostname 10.0.0.65
 Port 22
 User pi
 IdentityFile ~/.ssh/id_rsa

アクセスはssh tacosでオッケー、パスワードも入力する必要もないです。

$ ssh tacos
Linux raspberrypi 4.19.42+ #1219 Tue May 14 21:16:38 BST 2019 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Jun 28 19:14:36 2019 from 10.0.0.228
pi@raspberrypi:~ $

参照サイト


おまけ:OpenWrtにて

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 18.06.1, r7258-5eb055306f
 -----------------------------------------------------

鍵をサーバー(ルーター)に登録までは同じです。

sshサービスはdropbearを使っているので、少し設定が変わります。

登録した鍵ファイルのauthorized_keysをdropbearの設定場所にコピーします。 ファイルのパーミションを設定もします。

root@shadow:~# cp /root/.ssh/authorized_keys /etc/dropbear/
root@shadow:~# chmod 700 /etc/dropbear
root@shadow:~# chmod 600 /etc/dropbear/authorized_keys

パスワードでのログインを禁止する設定をします。

root@shadow:~# uci set dropbear.@dropbear[0].PasswordAuth=off
root@shadow:~# uci commit dropbear

そして、上記のように~/.ssh/configを編集して簡単にアクセスできるようにして終了。

comments powered by Disqus