クライアント構成
セットアップ ~/.ssh/config
のホストエントリの設定ssh
は非常に簡単で、多くの手間を省くことができます。以下に例を示します。
Host digitaloceanbox
Hostname 111.111.111.111
User root
PubKeyAuthentication yes
IdentityFile /home/user/.ssh/digitalocean-rsa
ForwardX11 yes
Host github github.com
Hostname github.com
User git
PubKeyAuthentication yes
IdentityFile /home/user/.ssh/github-rsa
ForwardX11 no
この例では、我々のセットアップdigitaloceanbox
とgithub
し、github.com
我々は次のコマンドを実行することができますように。
ssh github
ssh digitaloceanbox
構成ファイルで指定されているユーザーとは異なるユーザーとしてログインする場合はuser@
、最初に次のように入力します。
ssh
キーを生成する
ssh-keygen -t rsa -b 4096 -C user@homemachine
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/digitalocean-rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/digitalocean-rsa
Your public key has been saved in /home/user/.ssh/digitalocean-rsa.pub.
The key fingerprint is:
SHA256:p9PYE/tveF2n//bLbp3ogYDtMtYEC5ziQiPxeob6fbo user@homemachine
プロンプトが表示されたら、生成する秘密キーの完全なパスを指定したことに注意してくださいssh-keygen
。また-C
、リモートマシン上のキーを簡単に識別できるようにするコメント()も定義しました。
これにより、2つのファイルが作成されます。
.ssh/digitalocean-rsa
- プライベートキー。 これを決して共有しないでください。
.ssh/digitalocean-rsa.pub
- 公開鍵。これは、認証のためにサーバーに保存するものです。
ssh
キーを提供するとき、それが.pub
バージョンであることを確認してください!! に追加するときは~/.ssh/config
、システムに追加した公開鍵と一致する正しい秘密鍵を必ず追加してください。
サーバー構成
ほとんどのインストールでは、公開キー認証が有効になっています。しかし、すべてを自由に行うことを始めると、いくつかの問題が発生する可能性があります。OPが問題になっている場所で、OPが/root/.ssh/
ディレクトリを削除して最初からやり直すことをお勧めします。
ssh
リモートシステム上のルートユーザーへのアクセスに使用することはお勧めしません。ssh
別のユーザーにログインし、パスワード(sudo su -
)を使用してrootにエスカレーションすることをお勧めします。
を使用してホストにキーを追加する ssh-copy-id
別のユーザーを作成しssh
てそのユーザーとして使用するか、rootユーザーとして使用するかに関わらずssh
、サーバーにキーを配置する推奨方法は次のとおりです。
ssh-copy-id -i /home/user/.ssh/digitalocean-rsa.pub user@digitaloceanbox
これによりsshd
、必要な権限で必要なディレクトリとファイルを作成できます。これは、アクセス権を台無しにしたり、詳細を覚える必要がないことを意味します。ツールを使用してキーをアップロードするだけです。
パスワード認証を無効にする
つまり、自分でキーを入力し、キーを使用して接続できることを確認したら、パスワード認証を無効にしsshd
てサービスを再起動することをお勧めします。
- 編集
/etc/ssh/sshd_config
PasswordAuthentication no
sudo systemctl restart sshd
新規ユーザーはどうですか?
パスワード認証を無効にした場合、新しいユーザーにキーを設定するにはどうすればよいですか?1つの方法は、テンプレートファイルを/etc/skel
ディレクトリに追加することです。1人のユーザーにキーを設定したら、次の手順を実行します。
sudo cp -r .ssh/ /etc/skel/
ls /etc/skel/.ssh
/etc/skel/.ssh/
新しく作成されたすべてのユーザーのキーを自動的に入力する場合を除き、ファイルが空になるようにファイルを編集します。
で新しいユーザーを作成するとsudo useradd -m newuser
、そのユーザーはを持ち.ssh/authorized_keys
、これを編集して適切な権限を付与できます。
デバッグ
あなたは見ることができますsshd
接続が失敗したり、拒否します理由は、ログファイルを:
sudo tail -f /var/log/auth.log
このコマンドの実行中に、別の端末を使用してログインを試行してください。多くの場合、提供されるメッセージは問題を特定したり、オンラインで解決策を見つけたりするのに十分です。