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アルゴリズムの詳細な分析

推薦する

DockerでRedashの中国語版をデプロイしてインストールする方法の詳細な説明

1. インストール手順 Linux 環境でのローカル インストールと比較すると、Docker のイン...

MySQL 8.0.18 のインストールと設定のグラフィックチュートリアル

学習目標: Windowsシステムを使用してMySQLデータベースをインストールする方法を学びます。...

JavaScript の new 演算子の原理と例の詳細な説明

新しい用途new の機能は、コンストラクターを通じてインスタンス オブジェクトを作成することです。イ...

MySQLの共有ロックと排他ロックの使用例の分析

この記事では、例を使用して MySQL の共有ロックと排他ロックの使用方法を説明します。ご参考までに...

MySQLのSQL文はインデックスを使用しません

インデックス集約を使用しない MySQL クエリご存知のとおり、インデックスを追加することはクエリ速...

MySQL マスタースレーブレプリケーションと読み取り書き込み分離の詳細な説明

記事マインドマップマスター/スレーブ レプリケーションと読み取り/書き込み分離を使用する理由は何です...

Ubuntu システムに Theano と Keras をインストールする方法

注: システムは Ubuntu 14.04LTS、32 ビット オペレーティング システムです。Py...

MySQLのunion allとunionの違いを簡単に理解する

Union は、重複行を除外し、デフォルトのソートを実行する、データに対する結合操作です。Union...

Linux 環境に nginx をインストールするチュートリアル

目次1. 必要な環境をインストールする //gccをインストールする yum で gcc-c++ を...

Vue の this.$router と this.$route の違いと push() メソッド

公式文書には次のように記されている。ルーターを挿入することで、どのコンポーネントでも this.$r...

Vueフロントエンドの効率的な開発のためのレンダリング手順をリストします

v-for ディレクティブリストといえば、ループについても触れなければなりません。v-for 命令は...

div を下から上にスライドさせる CSS3 の例

1. まず、CSS3 のターゲット セレクターを使用し、a タグを使用して id セレクターを指定し...

H5ゲームをnginxサーバーにデプロイする方法の詳細な説明

自己学習型ゲーム開発の道において、最も充実した瞬間は、自分でミニゲームを作り、友達と共有して試しにプ...

htmlハイパーリンクaのクリックイベントの後、hrefで指定されたアドレスにジャンプします。

場合によっては、ジャンプを完了するために href の代わりにハイパーリンク <a> を...

jsを使用してシンプルな弾幕スクリーンシステムを実装する

この記事では、弾幕効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的な...