ラズパイでsshサーバを有効化する方法
大体ラズビアンをインストールしたら、一緒にSSHDが入ってます。
入ってない場合はコマンドでインストールして下さい
sudo apt update
sudo apt install -y openssh-server
設定フォルダは下記のようになってます
/etc/ssh/
├─ sshd_config ・・・ SSH サーバ設定ファイル
├─ ssh_config ・・・ SSH クライアント設定ファイル
├─ ssh_host_* ・・・ サーバのホスト鍵ファイル
主に推奨されるセキュリティ設定
「/etc/ssh/sshd_config 」のファイルを変更します
・パスワードの認証を許可する
PasswordAuthentication yes
・rootログインの禁止
PermitRootLogin no
・パスワード無しの接続を拒否
PermitEmptyPasswords no
・ポートの設定
port XXXX
・接続を許可するユーザを指定
AllowUsers ユーザー1 ユーザー2 ・・・ユーザ指定して接続許可をする(不特定多数に接続させない為)
AllowUsers ユーザー名@X.X.X.X ・・・ユーザとアドレス指定
AllowUsers ユーザー名@X.X.X.X/XX ・・・ユーザとアドレスをセグメントで指定
AllowGroups グループ名 ・・・グループを指定
・認証サービスのログを出力する
SyslogFacility AUTHPRIV
AUTH:ユーザーのログインや認証に関連するログ全般。
AUTHPRIV:ユーザーの認証情報や許可/拒否に関する、機密性の高いログ。
DAEMON:システムサービスやバックグラウンドプロセスからのログ。
USER:ユーザーが実行するプロセスからのログ。
LOCAL0 ~ LOCAL7:特定のアプリケーションやユーザーが自由に使える予約されたファシリティ。
・詳細なログを取得する
LogLevel VERBOSE
INFO:接続の確立、認証の成功、失敗、セッションの切断など、通常の運用監視、監査に最適。
QUIET:ログを出力しない
FATAL:深刻なエラーのみを記録します。
ERROR:SSH接続の確立に失敗するなどエラー状態を記録します。
VERBOSE:INFO よりも詳細な、デバッグに役立つ情報を記録します。
DEBUG:非常に詳細な、開発者レベルのデバッグ情報を記録します。
DEBUG1, DEBUG2, DEBUG3:デバッグレベルがさらに細分化されます。
その他、使用するコマンド(これは設定値ではないです)
・マニュアルを表示
man sshd_config
・サービスの再起動
systemctl restart sshd
・ログ確認
cat /var/log/auth.log
SSHサーバへの証明書でのアクセス方法
設定する前にいざというときの為にTELNET・コンソール・GUIでアクセスできる状態にしておきましょう。
証明書を間違った場合にSSHでアクセスできなくなります。
①「/etc/ssh/sshd_config 」のファイルを変更します
下記のコマンドを設定
PubkeyAuthentication yes ・・・公開鍵認証を有効にする
PasswordAuthentication no ・・・パスワード認証を拒否する
※パスワード認証がyesのままだと、パスワードでアクセス出来ちゃいます

②アクセス用の公開鍵と秘密鍵を作成
今回はTeratermで作成
設定 >SSH鍵生成 を選択

鍵の種類を選択して生成をクリック
※パスフレーズは入力しなくても大丈夫です
入力した場合は、SSH接続時にパスフレーズも入力します

生成したら、公開鍵と秘密鍵を任意の名前でダウンロードします
③ダウンロードしたら、公開鍵をサーバにアップロードします
私はTeratermのSCPで送付しました
(アップするのは公開鍵なので注意)

④アップした公開鍵を下記のフォルダに移動してファイル名と権限を変更
パス: /home/ユーザ名/.ssh/
ファイル名:authorized_keys
※「.ssh」フォルダが無い場合は作成する。ドット付ファイルなので注意
権限:600
※所有者が指定のユーザと違う場合は所有者も変更しましょう
※公開鍵を保存したユーザしかアクセスできないので、アクセスしたい場合は対象のユーザに公開鍵を保存しましょう
一般的には各々ユーザで証明書を作成します

⑤Teratermを開いて
ユーザ名を入力
認証で鍵を使うを選択して、サーバに保存した公開鍵とペアとなる秘密鍵を指定して接続を実行
※秘密鍵作成時にパスフレーズを指定した場合はパスフレーズも入力

完了です
私が使用したsshサーバはRSAが使えませんでしたので、「ECDSA-256」で作成しました。
下記のコマンドで使用できる種類が確認できます
sshd -T | grep pubkeyaccepted



コメント