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

推薦する

CentOS の環境変数と設定ファイルの詳細な説明

序文CentOS 環境変数設定ファイル システムは階層型システムであり、他のマルチユーザー アプリケ...

組み込み移植 docker エラー問題 (概要)

長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...

...

Ubuntu での Subversion (SVN) の詳細なインストールと設定

ソフトウェア開発者であれば、Subversion に精通している必要があります。 Subversio...

Element における複数データ読み込み最適化の実装

目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...

JavaScript で文字列内の最長の単語を見つける 3 つの方法 (推奨)

この記事は、Free Code Camp の基本アルゴリズム スクリプト「文字列内の最長の単語を見つ...

MySQL スケジュール データベース バックアップ (フル データベース バックアップ) の実装

目次1. MySQLデータのバックアップ1.1. データをバックアップするためのmysqldumpコ...

Linux の一般的なハードディスク管理コマンドの紹介

目次1. dfコマンド2. duコマンド3. fsckファイルシステム修復コマンド4. ディスクステ...

MySQL 8.0 エラー サーバーがクライアントに不明な認証方法を要求しました 解決策

最新バージョンのMySQL 8.0.11をインストールした後、ユーザーを作成して認証します。認証され...

SeataがMySQL 8バージョンを使用できない問題を解決する方法

考えられる理由: Seata が MySQL 8 をサポートしない主な理由は、接続ドライバーがバージ...

MySQLの自動増分IDについて知っておくべきこと

はじめに: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (A...

ページ内にマーキーとフラッシュが共存する場合の競合解決

競合の主な症状は、FLASH ボタンがジャンプし続け、不安定になり、Web ページの外観と通常のアク...

クールなネオンライト効果を実現する純粋な CSS (デモ付き)

私は最近、YouTube の CSS アニメーション効果チュートリアル シリーズをフォローしています...

html2canvas を使用して HTML コードを画像に変換する方法

コードを画像に変換するにはhtml2canvas は、ブラウザから Web ページのスクリーンショッ...