公開鍵をリモートマシンにコピーできます。公開キー認証が有効になっていて、公開キーがリモートマシンに存在するssh
限り、パスワードを入力しなくてもマシンにアクセスできます。
まず、次のような公開/秘密キーペアを生成する必要があります。
ssh-keygen -t rsa
プロンプトに従います。パスフレーズでキーを保護するかどうかを尋ねられたら、YES!キーをパスワードで保護しないのは悪い習慣です。たまにパスワードを入力するだけでよい方法を紹介します。
すでにキーペアがある場合は、上記の手順をスキップできます。
ここで、sshキーがMacにとして存在すると仮定すると、次のコマンド~/.ssh/id_rsa.pub
を実行してリモートマシンにインストールできます。
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
上記の特定のサーバーの例では、コマンドは次のようになります。
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
root@123.456.789.012
このコピーを実行するにはパスワードを入力する必要がありますが、これが最後に行う必要があります。リモートサーバーsshd
が公開鍵と秘密鍵の認証を行うように設定されていると仮定すると、ボックスにsshするとき、root
アカウントのパスワードを尋ねる必要はありません。代わりに、鍵のパスワードを尋ねます。これを常に入力する必要のないものにする方法をお読みください。
パスワードの代わりにキーを使用してsshするすべてのマシンに対して上記を繰り返します。
、注意してください誰もあなたのホールドを取得~/.ssh/id_rsa
ファイルは、このマシンにsshをすることができroot
、リモートマシンのパスワードを入力せずに。キーファイルをパスワードで保護することで、キーファイルを使用するためにそのキーのパスワードを知っておく必要があります。ファイルが安全であることを確認してください。Macでディスク暗号化を使用し、ファイルと~/.ssh/
ディレクトリのアクセス許可を厳しくしてください。
パスワードを毎回入力しなくてもキーを使いやすくするために、OS Xはssh-agent
マシンのバックグラウンドでプロセスを実行します。このエージェントは、最初に使用するときにキーペアをキャッシュするため、たまにパスワードを入力するだけで済みます。Macをスリープ状態にするだけで、再起動しないでください。パスワードを入力せずに長時間移動できます。
以下を実行することで、すべてのSSHキーを事前にキャッシュできますssh-agent
。
ssh-add
これで、多くの異なるアカウントパスワードではなく、キーパスワードのみを覚えておく必要があります。私は通常、キーパスワードを1Password(所属なし)に保持し、覚えておく必要があるパスワードの数をさらに簡素化します。次に、1Passwordでそれらを調べ、Macを再起動して実行ssh-agent
を再起動するという奇妙な時間にターミナルでそれらをカットアンドペーストします。
この質問でTerminal.app接続管理ソリューションとリモートマシンへのキーのコピーを組み合わせると、 GUI接続の経験のためにPuTTYに非常に近いものが得られます。
サーバー側で、次のことを確認してください/etc/ssh/sshd_config
。
PubkeyAuthentication yes
構成で有効になっています(OpenSSHではデフォルトです)。以下を設定することもできます。
PasswordAuthentication no
その間、パスワードベースの認証は無効になり、キーがマシンにアクセスする唯一の方法になります。
構成ファイルに変更を加えた場合は、マシンでsshdを再起動する必要があります。