Linux サーバーに SSH パスワードなしでログインする方法

Linux サーバーに SSH パスワードなしでログインする方法

テスト サーバーにログインするたびに、必ず ssh ログインのパスワードを入力する必要があります。ログイン数が少なければ問題ありませんが、ログイン数が多すぎると、余分なコマンド行はすべて冗長になります。

RSA認証ログイン方法

キーペアの作成

クライアント(ローカルマシン)ターミナルで次のコマンドを入力します。

ssh-keygen -t [rsa|dsa]

RSAとDSAは異なるアルゴリズムを表す

例えば:

ssh-keygen -t rsa

Enterキーを押し続けるだけです(パスワードを設定する必要はありません)

キーファイルと秘密キーファイル id_rsa、id_rsa.pub が生成されます (dsa が使用されている場合は、id_dsa、id_dsa.pub が生成されます)

生成場所は /root/.ssh/ フォルダ内です (私は root ユーザーを使用しているので、root では生成プロセスでファイルの場所が求められます)

.sshは隠しフォルダなので、ls -aを使用して表示します。

公開鍵をサーバーの指定された場所に置く

方法1: 直接コピー

1. 公開鍵をサーバーのルートユーザーの.sshフォルダにコピーします(ログインしているユーザーの.sshフォルダにコピーします)

scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/

2. 公開鍵をインストールする

サーバーにログインします cd /root/.ssh/

cat id_rsa.pub >> authorized_keys

方法2: ssh-copy-id コマンドを使用してコピーする (推奨)

1つのコマンドでOK

sshコピーID [email protected]

確認する

パスワードを入力しない場合は成功しますが、入力した場合は失敗します。

SSH ルート@172.16.0.164

予防

上記の操作はテスト済みで問題はありません

使用する Linux のバージョンやユーザーによって違いがあります。

問題がある場合は、次の2点を考慮してください。

1. id_rsa.pub および authorized_keys のファイル権限の問題

chmod 600 承認済みキー
chmod 700 ~/.ssh

2. ssh設定ファイル

 vim /etc/ssh/sshd_config
 #RSA認証を有効にします。デフォルトはyesです
 RSA認証はい
 公開鍵認証を有効にする。デフォルトは「はい」
 公開鍵認証はい
 #rootユーザーsshログインPermitRootLogin yes

(私はこれらの設定を変更していません。私のは redhat7.2 です)

シンプルなシェルスクリプトをカスタマイズする

共通フォルダにファイルを作成する

タッチ164.sh

ファイルの編集

ファイルの内容 ssh [email protected]

 vim 164.sh
 #コンテンツを追加 ssh [email protected]
 保存して終了: wq

ユーザーの実行権限を増やす

chmod u+x 164.sh

タブキーと一緒に使うともっと楽しい

./164.sh

Expectコマンドのパスワード不要のログイン方法

サーバーシステムを操作するのは良くないと思われるかもしれませんが、もちろんローカルで操作することもできます。

expectコマンドを使用するには、expectコマンドがローカルにある場合に限り、ローカル操作が必要です。

1. ファイルを作成する

タッチexpectssh.sh

以下の内容を追加し、ユーザー、IP、パスワードを自分のものに変更します。

 #!/usr/bin/expect -f
 ユーザー名をrootに設定する 
 ホスト名を172.16.0.164に設定する 
 パスワード 123456 を設定
 ssh $username@$hostname を起動する
 タイムアウト1を設定
 期待する { "はい/いいえ" 
  {「はい\r」を送信;exp_continue}
 }
 「$username@$hostnameのパスワード:」を期待します
 「$password\r」を送信
 交流する

2. expectssh.shに実行権限を追加する

chmod u+x expectssh.sh

3. コマンドを実行する

期待するexpectssh.sh

(1. expect コマンドを使用して実行する必要があります 2. 別のレイヤーにラップして、bash 解析を使用して実行できます)

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux でサーバーに接続するための SSH と Xshell の設定に関するチュートリアル (画像付き)
  • LinuxサーバのSSHクラッキング防止方法(推奨)
  • WindowsにOpenSSHをインストールし、SSHキーを生成してLinuxサーバーにログインします。
  • SSH経由でLinuxサーバーにファイルやフォルダをアップロードする方法
  • Python の Paramiko モジュールは、Linux サーバーにログインするための SSH 接続を実装します。
  • Windows で winscp とバッチ処理を使用して、SSH ポート経由で Linux サーバーにファイルをアップロードする
  • Linux サーバーで安全な SSH アクセスを構成するための 4 つのヒント
  • Linux ssh サーバーの構成コード例

<<:  MySQL でプロファイルを使用する方法のチュートリアル

>>:  Reactのdiffアルゴリズムの詳細な分析

推薦する

MySQL 5.7.18 マスタースレーブレプリケーション設定(マスター 1 台とスレーブ 1 台)チュートリアルの詳細な説明

1. 複製原理マスター サーバーはバイナリ ログ ファイルに更新を書き込み、ログのローテーションを追...

ウェブページ制作時のコードコメントの書き方

<br />私の仕事で使用しているアノテーションの書き方の基準をまとめました。技術的な内...

HTML でよく使用されるエスケープ文字の概要

HTML でよく使用されるエスケープ文字をまとめると次のようになります。 &nbsp; 改行...

VMware 仮想マシンに CentOS と Qt をインストールするチュートリアル図

VMware のインストールパッケージのインストールダウンロードアドレス: https://www....

Nodejs プラグインと使用方法の概要

このチュートリアルの動作環境: Windows 7 システム、nodejs バージョン 12.19....

Web デザイン スキル: iframe の適応高さの問題

おそらく、この問題にまだ遭遇していない人もいるでしょうから、まずは適応高さとは何かを説明しましょう。...

MySQL 5.7.21 winx64 グリーンバージョンのインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.21のインストールと設定方法を記録しています。具体的な内容は以下のと...

Navicat の MySQL へのリモート接続が遅い理由の詳細な説明

最終的な解決策は最後の写真にありますリモート データベース ( Linux システム) に接続したと...

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

Reactにおける不変値の説明

目次不変の値とは何ですか?不変の値を使用するのはなぜですか? Reactのパフォーマンス最適化は不変...

ウェブページのエクスペリエンス: ウェブページのカラーマッチング

<br />ウェブページの色はウェブサイトのイメージを確立する鍵の一つですが、ネットユー...

25 div+css プログラミングのヒントとコツ

1. ul タグには、Mozilla ではデフォルトでパディング値がありますが、IE ではマージン値...

Docker - コンテナマウントディレクトリを変更する3つの方法のまとめ

方法 1: 設定ファイルを変更する (docker サービスを停止する必要があります) 1. doc...

AES_ENCRYPT() と AES_DECRYPT() を使用して MySQL を暗号化および復号化する正しい方法の例

序文最近、仕事でAES_ENCRYPT()関数を使用してプレーンテキストを暗号化し、MySQL に保...

Linux で大きなファイルの内容を消去または削除する 5 つの方法

Linux ターミナルでファイルを操作しているときに、Linux コマンドライン エディターでファイ...