| 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
を編集して簡単にアクセスできるようにして終了。