Linux の ssh 公開鍵の追加
1. サーバーAの公開鍵をサーバーBに追加する
2. サーバーAに移動し、コマンドssh-keygen all way backを入力します。
MBP:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xubin/.ssh/id_rsa):
/Users/xubin/.ssh/id_rsa already exists.
Overwrite (y/n)? yes
Enter passphrase (empty for no passphrase):
Enter the same passphrase again:
Your identification has been saved in /Users/xubin/.ssh/id_rsa.
Your public key has been saved in /Users/xubin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:IeFPfrcQ35HotRi2XNOGk MBP
The key's randomart image is:
+---[RSA 2048]----+
| .o*@=o | .
| . . oEB=o | .
| o@=+O . | .
| B=+o @ . | .
| =So* * |
| . o. = . | .
| o
| o
| o
+ ----[SHA256]-----+
3. サーバーAで/root/.ssh/id_rsa.pubを探し、内容をコピーします。
4. サーバーBの/root/.ssh/authorized_keysを探し、サーバーAのid_rsa.pub公開鍵の内容をそこにコピーします。
または、コマンドを使用します。
## Execute on server A
scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
記事をブックマークする。
sshパスワードレスログインは公開鍵と秘密鍵の両方を使用します。ssh-keygenはLinuxで公開鍵と秘密鍵のペアを生成するために使用できます。
マシンA (192.100.100.155), B (192.200.200.181) があります。今、私はAがパスワードなしでssh経由でBにログインしたい。
まず、例としてrootアカウントでログインします。
1. マシンAで公開鍵/秘密鍵のペアを生成する。
[root@A ~]# ssh-keygen -t rsa -P ''
-P はパスワード、-P ''は空のパスワード、または、-P パラメータを使用しない場合は、キャリッジリターンが 3 つ必要になり、-P ではキャリッジリターンが 1 つになります。
このコマンドは、/root/.ssh ディレクトリの下に id_rsa と id_rsa.pub の鍵のペアを生成します。
通常のssh用rsaキーです。
id_rsa秘密鍵
id_rsa.pubの公開鍵
次のコマンドは、異なるタイプの鍵を生成します。
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1
2. マシンAの /root/.ssh/id_rsa.pub をマシンBの /root/.ssh/authorized_keys ファイルにコピーします。先にマシンBに /root/.ssh ディレクトリを作り、scpでコピーします。
[root@A ~]# scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/authorized_keys
[email protected]'s password:
id_rsa.pub 100% 223 0.2KB/s 00:00
パスワード不要のログインはまだないので、マシンBのrootパスワードを一度入力する必要があります。
<スパン
3.
authorized_keysのパーミッションは600にすべき!!!!
[root@B ~]# chmod 600 /root/.ssh/authorized_keys
4. マシンAはマシンBにログインする。
[root@A ~]# ssh -l root 192.200.200.181
The authenticity of host '192.200.200.181 (192.200.200.181)' can't be established.
RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.200.200.181' (RSA) to the list of known hosts.
Last login: Thu Jul 3 09:53:18 2008 from root
[root@B ~]#
初回ログイン時には、「はい」の入力を求められます。
これで、マシンAはマシンBにパスワードなしでログインできるようになった。
概要:ログインしたマシンは秘密鍵を持つことができ、ログインしたマシンはその公開鍵を持つ必要がある。この公開鍵/秘密鍵のペアは、通常、秘密鍵のホストで生成される。上記はrsaアルゴリズムを使用した公開鍵/秘密鍵ペアですが、もちろんdsaを使用することもできます(対応するファイルはid_dsa, id_dsa.pub)
マシンAとマシンBをパスワードなしで相互にログインさせたい場合は、マシンBを上記と同じように設定すればよい。
<スパン SSH-KeyGenの使用方法
Aがクライアントマシン、Bがターゲットマシンであると仮定する。
実現したいこと
マシンAがマシンBにパスワードを入力せずにsshログインする。
暗号化方式は rsa|dsa で、デフォルトは dsa です。
アプローチ
1. マシンAへログイン
2, ssh-keygen -t [rsa|dsa], 鍵ファイルおよび秘密鍵ファイル id_rsa,id_rsa.pub または id_dsa,id_dsa.pub を生成します。
3. 3. .pub ファイルをマシン B の .ssh ディレクトリにコピーし、cat id_dsa.pub >> ~/.ssh/authorized_keys
4. 作業は完了し、マシンBのターゲットアカウントはマシンAからログインし、パスワードは不要になりました。
ssh-keygen はパスワード認証を行うので、パスワードを使用せずに他のマシンに ssh や scp ができます。
これは、次のように行います。
ssh-keygen -t rsa
次に、デフォルト値を使用して、すべてを入力します。
これで鍵のペアが生成され、~/.ssh の下のユーザーディレクトリに保存されます。
公開鍵を相手マシンのユーザーディレクトリに持って行き、~/.ssh/authorized_keysにコピーします。
.sshとauthorized_keysの両方が、ユーザー本人のみ書き込み可能な状態になっていることを確認してください。そうでないと、認証が無効になります。(これが今日の問題で、問題を見つけるのに時間がかかりました。) 実は、よく考えてみると、これはシステムの脆弱性が出ないようにするためだったのです。
<スパン 元の記事はこちら http://blog.sina.com.cn/s/blog_4077692e0100qjkp.html
関連
-
アクセスが拒否されました。PROCESS 特権が(少なくとも1つ)必要です。
-
[Linux] [コンパイル] libmpc.so.3: cannot open shared object file: そのようなファイルまたはディレクトリはありません
-
ConnectionRefusedErrorです。[Errno 111] 接続が拒否されました。
-
変数 "xxx" はイニシャライザを持ちますが、型は不完全です。
-
Linuxの一般的なコマンドを史上最も完璧にまとめた本(超充実! (超詳しい!)これだけ集めれば十分!?
-
LDAPエラー ldap_bind: 無効な認証情報 (49) 解決策
-
これを知らなければ、おそらくLinuxを使い始めてもいないでしょう
-
Linux "std::bad_allocのインスタンスを投げた後に呼び出されたterminate what(): std::bad_alloc Aborted "
-
'float' オブジェクトは整数として解釈できません。
-
centos - centos7でcrontabを使用してmysqlのスケジュールバックアップを行う。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Makefileを参照してください。***セパレータがない。 停止 原因と解決策
-
SSHパスワードフリーログイン設定後、stdinがターミナルでないため、疑似ターミナルが割り当てられない。
-
時間問題をたくさん出してくれた人たち(連続更新)
-
MongoDBインストール+解決エラー。mongod.service の起動に失敗しました:until not found
-
ImportError: pkg_resources という名前のモジュールがない ソリューション
-
Python easy_install は "ImportError: pkg_resources という名前のモジュールがありません" というエラーが発生しました。
-
centos 7.2 make: *** `default' が必要とする `build' をターゲットとするルールがありません。停止します。
-
エラーとなったシェルスクリプトを実行します。"予期しないトークン付近の構文エラーに対する解決策`"
-
Linuxでビジー状態のテキストファイルでプログラムを実行する場合の対処法
-
nginx: [emerg] 0.0.0.0:80 への bind() に失敗しました (13: Permission denied)。