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

推薦する

Ubuntu 18.04 で apt ソースを Alibaba Cloud ソースに変更する詳細なプロセス

目次序文: Ubuntu 18.04 は apt ソースを Alibaba Cloud ソースに変更...

テーブルパーティションとパーティション分割とは何ですか?MySqlデータベースパーティションとテーブルパーティション分割方法

1. テーブルとパーティションを分割する必要があるのはなぜですか?日常の開発では、大きなテーブルに遭...

VSCode と SSH を使用したリモート開発

0. リモート開発が必要な理由組み込み Linux を開発する場合、便宜上、通常は Windows ...

スーパーバイザーウォッチドッグの使い方を3分で学ぶ

ソフトウェアとハ​​ードウェア環境centos7.6.1810 64ビット cat /etc/red...

CSS で平均レイアウトを実現するために負のマージンを使用する例

均等に分散されたレイアウトの場合、通常はネガティブ マージン方式を使用します。次の図は平均的なレイア...

テーブルタグ(テーブル)詳細

<br />テーブルは、昔から誰もが使ってきたタグで、今も使われています。しかし、現在の...

シェルスクリプトを使用して Docker サービスを一括で開始および停止する

目次Dockerを起動するDockerを停止するPython 呼び出しスクリプト最近、日々のテストで...

Vue3.0でカスタム命令を書くための簡単な手順

序文Vue には、v-if、v-bind、v-on などの豊富な組み込みディレクティブが用意されてい...

Vueのsync修飾子の詳細な説明

目次1. 手順2. 修飾語3. .sync 修飾子4. まとめ1. 手順指示とは命令です。文字通りの...

MySQL killコマンドの実行原理の詳細な説明

目次キル命令実行原理命令実行特性クエリ実行の強制終了の原則接続終了の実装原則中断される可能性はありま...

水平プログレスバーの最後にテキストを表示するための実装コードの CSS 記述

問題の説明仕事で以下の成果を達成したいと考えています。 解決div タグに相対配置を追加し、絶対配置...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...

ウェブサイトに最も必要なのは、ターゲットユーザーグループのエクスペリエンスを向上させることです。

「大河は東に流れ、波は歴代の英雄たちを洗い流した。古城の西側は三国時代の周朗の赤壁だと言われている...

WeChat アプレットカスタムタブバーステップ記録

目次1. はじめに2. タブバーのスタイルをカスタマイズする3. カスタムタブバーと関連設定を導入す...

Linuxのwhichコマンドの具体的な使い方

Linux でファイルを見つけたいのに、その場所がわからないことがよくあります。次のコマンドを使用し...