LoginSignup
1
0

SSH接続のための設定まとめ

Last updated at Posted at 2022-07-18

はじめに

備忘録
SSHでのサーバー接続のために必要な設定をまとめました。

OS SHELL REMARKS
CLIENT macOS Monterey zsh %で表記
SERVER Ubuntu 20.04 bash $で表記
どなたかのお役に立てれば幸いです。

サーバーでの事前準備

SSHのためにはサーバーをSSH接続に対応させる必要があります。
以下では、そのための事前準備の方法を紹介します。

openssh-serverのインストール

サーバー側(今回はUbuntu)にopenssh-serverをインストールします。

$ sudo apt install openssh-server

openssh-serverが入っていないとSSHできないので、初めに必ずインストールしましょう。
インストールすることでsshのデーモンさん(sshd)が働き始めます。

SSHのステータスを確認

以下のコマンドで確認できます。

$ sudo systemctl status ssh

サービスがactiveになっていればOKです。

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) ・・・ <=  ここです
                            :

サービスが実行されていない場合

以下のコマンドで実行できます。

$ sudo systemctl enable ssh
$ sudo systemctl start ssh

その他

SSHを停止する

$ sudo systemctl stop ssh

SSHを無効にする

$ sudo systemctl disable ssh

鍵の生成〜登録〜接続

これまでの設定でSSHのための事前準備が整いました。
以下では

鍵を生成する

SSHに必要な鍵ペア(秘密鍵と公開鍵)は以下のコマンドで生成できます。

% ssh-keygen

-tを利用することで暗号の種類を指定することができます。

% ssh-keygen -t rsa
% ssh-keygen -t ecdsa
% ssh-keygen -t ed25519

-bを利用することで鍵長を指定することができます。

% ssh-keygen -t rsa -b 4096
% ssh-keygen -t ecdsa -b 384

rsaecdsaは鍵長を指定できます。
ed25519256bit固定のようです。

-Cを利用することで公開鍵の後ろにコメントをすることができます。

% ssh-keygen -t ed25519 -C ""

コメントの有無は認証には関係ありません。
-Cなしで鍵を生成するとusername@hostnameがコメントに設定されるようです。
プライバシーが気になる人は""でコメントをブランクにしても良いかもしれません。
逆に大人数で管理する等の都合でたくさんの公開鍵を管理するサーバーであればコメント有りの方が誰の鍵かわかって良いかも?

ssh-keygenを実行すると以下の文章が表示されます。

Enter file in which to save the key (/username/.ssh/id_ed25519):
Created directory '/username/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

1行目:鍵ファイルの名前や作成場所を変える場合は入力します
2行目:ディレクトリがなければ自動的に作られます
3, 4行目:パスフレーズを設定する場合は入力します
:::note
パスフレーズを設定することで安全性を高めることができますが、SSHするたびにパスフレーズを入力しなければいけません。
秘密鍵が安全に管理されており、パスフレーズの入力が面倒であれば、パスフレーズの設定は見送ってもいいかもしれません。
:::
パスフレーズは後から変更することもできます。

% ssh-keygen -p -f ~/.ssh/id_ed25519

サーバーに鍵をコピー

ssh-copy-idコマンドは以下のように書くことができます。

% ssh-copy-id ユーザー名@サーバーのipアドレス

サーバー側で鍵が書き込まれていることを確認

lessコマンドをつかってファイルの中身を見ます。

$ less ~/.ssh/authorized_keys

閲覧を終了するには、escを押してから:qと入力してEnterを押します。

サーバーにSSH接続する

sshコマンドは以下のように書くことができます。

% ssh -i 秘密鍵へのパス ユーザー名@サーバーのipアドレス

id_ed25519を使う場合は以下のようになります。

% ssh -i ~/.ssh/id_ed25519 user_name@xxx.xxx.xxx.xxx

パスフレーズを設定した場合は、sshコマンドを実行すると秘密鍵のパスワード入力が求められます。

SSH接続を切断する

exitコマンドで切断できます。

ユーザー名@ホスト名:~$ exit

SSHできないとき(UFWの設定方法)

ファイアウォールによってSSH接続が拒否されているかもしれません。
Ubuntuでは、UFWを設定することでアクセスを制限することができます。
SSHは22番ポートに設定されていることが多いので、ファイアウォールの設定を確かめてみてください。
また、適切に設定することでサーバーの安全性を高めることができるので、余裕がある人は試してみてください。
https://qiita.com/010Ri/items/f37f7f5fb35265823c7c

ブログもあります

1
0
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
1
0