it-swarm-ja.com

Windows、Linux、またはMacOSXクライアントを介してLinux / MacOSX sshdサーバーにssh、キーベース(「パスワードなし」)のログインを設定するにはどうすればよいですか?

Windows、Linux、またはMacOSXクライアントを介してLinux/MacOSX sshdサーバーにログインするセットアップssh、キーベース(「パスワードなし」)クライアントはどのようになっていますか?

[キーベースのssh/sshdログインの基本的で概念的な理解と、前述のすべてのオペレーティングシステムのセットアップの操作例の両方を求めています。]

4
Johnny Utahh

優先:

  1. 鍵暗号化の概念の簡潔な基本について話し合う(魔法をわかりやすく説明しようとする)
  2. 上記の概念をネットワーク経由のログイン(認証)に適用する
  3. 詳細な操作例/手順を提供します。

1:基本暗号化、認証の概念

公開鍵は、秘密鍵のみが復号化できる 暗号化 データを生成します。このデータが何であるかは関係ありません。 [単純なテキストファイルである可能性があります...またはある種の チャレンジ/レスポンス認証システム (詳細は以下)...その単なる暗号化-復号化メカニズムです。]たとえば、誰かが電子メールコンテンツを暗号化できます「JohnnyUtahh」の公開鍵、および結果として得られる暗号化された出力。これは、JohnnyUtahhの秘密鍵でのみ復号化できます。したがって、「安全で秘密の」通信をサポートするために、上記の秘密鍵を安全な場所に保管する(できればネットワーク上を移動しない)ことが重要です。

2:上記の概念を適用してパスワードなしのログインを可能にする

「パスワードなし」のログインは、多くの場合、 チャレンジ/レスポンス認証 システムで有効になります。 「ログインする」システム(MachineAと呼びます)は「質問」(おそらく単なるランダムな文字列)を考え出し、「ログインしたいマシン(MachineXと呼びます)」に関連付けられた公開鍵でその質問を暗号化します。 「」 MachineXは、上記の質問を復号化し、復号化された質問を「回答」として送信して、MachineAによって検証されます。検証されると、MachineAはMachineXログインを(MachineAに)許可します。

これはすべて、上記の交換が行われる前に、MachineAがMachineXの公開鍵(Linuxシステムでは通常アカウントの「ログイン」の~/.ssh/authorized_keysに保存されている)を持っていることを前提としています。これが、MachineA:~/.ssh/authorized_keysファイルにある公開鍵のコピーが必要な理由です。このファイルは、理論的には~/.ssh/authorized__public__keys ...という名前にすることもでき、そのように名前を付けた場合、多くのユーザー間の多くの混乱を積極的に回避する可能性があります...しかし、「分散」キーは公開キーであると推定されます。したがって、設計者は「公開」形容詞は不要である可能性があると考えました。

3:詳細な操作例/手順

(まえがき:これは、ログインするサーバー/マシンに実行中のsshdデーモンがあることを前提としています。また、代替の例/手順/メモは 「SSHの設定方法」への回答にあります。だから私は自分のパスワードを入力する必要はありませんか? " 、しかしそれはとりわけWindowsクライアントをカバーしていません。)

クライアント側(ssh)ログインプロセスのキーペアを作成します。 Windowsでは、 PuTTYgen および 新しいキーペアを作成 (もちろん公開キーを含む)の使用を検討してください。 Linux/MacOSXの場合、 ssh-keygen(1) をお勧めします。 Unbuntu(Linux)11.04で実行された次のキーペア作成セッションの例を参照してください。

[email protected]:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/joeschmo/.ssh/id_rsa): 
Created directory '/home/joeschmo/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/joeschmo/.ssh/id_rsa.
Your public key has been saved in /home/joeschmo/.ssh/id_rsa.pub.
The key fingerprint is:
e8:36:69:c5:9a:d2:e3:e0:53:f3:34:d4:d0:a2:8a:80 [email protected]
The key's randomart image is:
[... <output truncated by author to save space> ...]
[email protected]:~$ ls -la .ssh
total 16
drwx------ 2 joeschmo joeschmo 4096 Oct 20 12:26 .
drwxr-xr-x 3 joeschmo joeschmo 4096 Oct 20 12:26 ..
-rw------- 1 joeschmo joeschmo 1679 Oct 20 12:26 id_rsa
-rw-r--r-- 1 joeschmo joeschmo  408 Oct 20 12:26 id_rsa.pub
[email protected]:~$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp8nle6B68HgVQoQ8hCyQI9yKjsKnThRS0FjWsOwXId8Mc6i9E3zM0ByxBeneIFP8O42dwYmM9zwWrpP8zvpSbo0J2qIfhm+kZibClJnIIY8nVJt5AbXGdoQHOnxKOJUqP9EZgOgMqEjBNB3IVi7jPw2AXcMeZb1SCCbwsLWXzueECJP7Z4oJTU5+hD0grFMaWNhSszdpSD2Xo1hWi2fPdBu/cRMV4LTD3L7pOI57HeXS2mcLoznQohV7OV4RvDgRS9hhHi1A5/bzg9zRHJBISB0sxnwjmfz/kTaljBVZ8xtM9LenkmQYyj6B+0P+BFDAxzHIJKNOrf+i92fuLktoP [email protected]
[email protected]:~$ 

上記のLinuxの例では、/home/joeschmo/.ssh/id_rsaには秘密鍵(単なるテキスト)が含まれ、/home/joeschmo/.ssh/id_rsa.pubには公開鍵(これも単なるテキスト)が含まれています。また、上記の例ではパスフレーズを入力せず、「パスフレーズなし」の場合は「return」と入力するだけです。

[作成者のメモ:これまで公開鍵にパスフレーズを使用したことはありませんが、使用する場合は、公開鍵に「アクセス」するためにパスフレーズを再入力する必要があります...おそらくパスフレーズは公開鍵を暗号化していますが、私はわからない。上記のパスフレーズを毎回入力する必要がある場合、そのようなものはパスワードなしのログインの目的を無効にします。多分それは一度だけのエントリーですか?後で宿題、おそらく...]

上記のすべての手順は、クライアント側(「ログインfrom」するマシン)の手順を表しています。次に、サーバー側(「ログインから」するマシン)のセットアップに進みます。

id_rsa.pubからのパスワードなしのログインを許可するマシンの~/.ssh/authorized_keysファイルに[email protected]の内容を追加する必要があります。 (注:~/.ssh/authorized_keysの「group」および「other/world」権限を必ずオフにしてください。他のsshdは通常、「安全でない」と見なされるため、上記のファイルを読み取りません)。 注: ssh-copy-id この手順を自動化/簡略化します。

それでおしまい。あるマシンから別のマシンへのパスワードなしのログインのみが必要な場合は、これで完了です。

しかし...もっと一般的には...

1台のマシンに秘密鍵を保持し(したがって、そのマシンを識別します。これを「MachineX」と呼びましょう)、MachineXへのログインを許可するすべてのマシンにペアの公開鍵部分をコピーします。したがって、マシンA、B、Cはすべて、MachineXの公開鍵のコピーをそれぞれの~/.ssh/authorized_keyファイルに入れて、MachineXがマシンA、B、およびCにログインできるようにします(さらに、他の多くの公開鍵を記録できます。 。マシンA、B、およびCのそれぞれの~/.ssh/authorized_keysにある異なるキーペアから、MachineX以外のマシンからのログインを有効にします。)例:

Machine X pub key  --- copied to ~/.ssh/authorized_keys at -->  Machine A
Machine X pub key  --- copied to ~/.ssh/authorized_keys at -->  Machine B
Machine X pub key  --- copied to ~/.ssh/authorized_keys at -->  Machine C

上記により、MachineXからのログインで、パスワードを入力せずにA、B、またはCのいずれかにログインできます。

または:

Machine Y pub key  --- copied to ~/.ssh/authorized_keys at -->  Machine A
Machine Y pub key  --- copied to ~/.ssh/authorized_keys at -->  Machine B
Machine Y pub key  --- copied to ~/.ssh/authorized_keys at -->  Machine C

上記により、MachineYからのログインで、パスワードを入力せずにA、B、またはCのいずれかにログインできます。

したがって、上記のすべてが「適用」されると、マシンA、B、およびCはすべて、A、B、およびCの~/.ssh/authorized_keysにXとYの両方の公開鍵のコピーを持ちます。

また、各pub/privキーのペアは、通常、マシン(上記の場合、マシンXおよびY)の特定のアカウントに関連付けられていることにも注意してください。例:johnnyutahh @ MachineX、pappas @MachineYなど。

いずれにせよ、公開鍵と秘密鍵のペアの秘密鍵は1台のマシンにのみ存在し(「正しく実行している」場合)、ネットワークを介して転送されることはありません。したがって、それはプライベートです。したがって、それは「安全」です。逆に、公開鍵は風に向かって投げられ、あちこちにコピーされます。

以下の~/.ssh/authorized_keysファイルの例には、私の[email protected][email protected][email protected][email protected](上記のssh-keygenの例から)の公開鍵が含まれている可能性があります。 。各行の終わりにあるこれらの「アドレス」は単なるコメントであることに注意してください。これらは、人間がどのキーがどれであるかを理解するのに役立つ任意のテキストであり、自動化されたシステム/プログラムのいずれによっても実際には何も使用されていません。

[email protected] Oct 20 02:20:12 ~# cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyTNCV7NUBssxobBZqWormtzcUmICSeGPTSp1i48FVIAebvpgAv7Pb3lFG3vFP8e88w9zGjFnZ6GzTQEwQaTL9YJ/Q9zOvAuxjb8chJz86j9Pg+S8ic4G34c2Og8UoNbTDWYOAZaP/axpoC9W81bh0tjldPnGQuifm9ELHXMXjfGq9QazyPqOcgNG6QL7cl8TYGoj4yJxRwoSytYG65l0/bCFX8JubkFdbWDXNY4tFEfollFIlm10xzQIfz6S6I80Bu0XesFvCjgfLwiLdt+8nT7U9Tawwq8jBc1U0yisQzkSJ9UwXYcKkYX2SJMQ8Ld3Nn82wsisXcEn+Zpe3A6Usw== [email protected]
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0zPre+WkOlNgc4KzFRxGj2Y5UwG0gW+kI2LjvgwNYZLHGQqQ0GQGkmg5rulSbyx3WPo1KNCiaqafQ8fWFmXIgKreGWMwEOehnKLyXLhhxvzpYDgJhI1QbwgInLjUCj8krvsdj9fCLY6sFTYFCXLKUptJGbXThcB170kFhJCUlR33H4WfWn4NWzwpmma4HsVDR7F7eUmJE8FD+6AG4Uw9bljDaUS++XghAZ5oXUofGx7FE2vcQKdNAMF5jYIN/XbL4cj4HuJUonqYgyxCX2JpvJePEwMBW1qQffAjgtgs85217OFmfLIVL6rB3RHh1mmIHSVLtOhAZo1okg708scPCw== [email protected]
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC84JdXtzFhQgcFj7/1pz+li2qzZSThJalddkUubuvI71i/Bk7fJ5uI8CCQDPvzr1P+HGaY//RxBG0S2jINXk4LEE1mA3Ogyo+r2ykMaqcNa2JJycHs0sdczZhZR0OOxf5KGz8hhy5W1cdhca6q0AcHmbj+KWz5N0U1qlLptMD4C45QgxtUjFYPWM7r9bDdt6kTo9J39LP4w3S1GTM9uDC8V5NUZX+lFZMap+Tch/YcEiPxAm4VaTM7CGXly+w5XpjlEVUNEb5xu51dOoOXbjueD5Vl3wdPwC6A511v2k9mD/1F4GXjRDzlelKiu4TJ9mVAI2J9+UC0iMUyYj52RO53 [email protected]
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp8nle6B68HgVQoQ8hCyQI9yKjsKnThRS0FjWsOwXId8Mc6i9E3zM0ByxBeneIFP8O42dwYmM9zwWrpP8zvpSbo0J2qIfhm+kZibClJnIIY8nVJt5AbXGdoQHOnxKOJUqP9EZgOgMqEjBNB3IVi7jPw2AXcMeZb1SCCbwsLWXzueECJP7Z4oJTU5+hD0grFMaWNhSszdpSD2Xo1hWi2fPdBu/cRMV4LTD3L7pOI57HeXS2mcLoznQohV7OV4RvDgRS9hhHi1A5/bzg9zRHJBISB0sxnwjmfz/kTaljBVZ8xtM9LenkmQYyj6B+0P+BFDAxzHIJKNOrf+i92fuLktoP [email protected]
[email protected] Oct 20 02:20:19 ~#
3
Johnny Utahh