忍者ブログ
  • 2025.04
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 2025.06
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2025/05/04 13:09 】 |
ssh(rsa2)の鍵認証方法
sshにて鍵を作成して、
パスワード認証をなくす。

①ユーザ作成

# useradd user1

②パスワード設定

# password user1

③ユーザ変更

# su - user1

④鍵作成

$ ssh-keagen -t rsa

Enter file in which to save the key(/home/user1/.ssh/id_rsa): Enterを押す

Enter passphrase (empty for no passphrase): パスワード入力

Enter same paaaphrase again: もう一度パスワード入力

実務ではuserごとに鍵を作成する。
別の管理者の鍵(例えばuser2)を作成する場合、ここでのパスワードはuser1とは
別のものを設定して本人に鍵を管理してもらう。

⑤/home/user1/.sshに移動

$ cd /home/user1/.ssh
$ pwd
/home/user1.ssh

$ls
id_rsa id_rsa.pub
2つファイルがあるのを確認する。

id_rsa……公開鍵
id_rsa.pub……秘密鍵

公開鍵はサーバにおいておく。
秘密鍵をクライアントにわたす。

⑥公開鍵をauthorized_keysにする。

$ cat id_rsa.pub > authorized_keys
authorized_keysに公開鍵の情報を書き込む

$ rm id_rsa.pub
元の公開鍵は消してしまいます。

authorized_keysは鍵認証をする際に/etc/ssh/sshd_configで指定する。
下に進めばわかります。

⑦authorized_keysのアクセス件を600にする

$ chmod 600 authorized_keys

$ ls -l
-rw------- 1 user1 user1 authorized_keys

上記のアクセス件になっていることを確認する。

⑧id_rsaをクライアント(Windows)に移動する。
方法としては
①sambaをこのLinuxに入れる。
②USBやフロッピーでとる。

他にも有ると思うけどとりあえず2つあげとく。
手順についてはまた時間のあるときに記載します。


⑨Windowsにputtyをダウンロードする。
今回はputty日本語版をダウンロードした。
googleでputty 日本語で検索すると
すぐに見つかります。


⑩解凍ソフト lhaplusをダウンロードする。
puttyはzip形式になっているのでlhaplusを
使用して解凍します。
このソフトすごく便利なのでおすすめです。
ファイル圧縮・解凍ソフトです。
これもgoogleでlhaplus ダウンロードとか
やればすぐみつかります。

⑪puttyのフォルダ内にあるputtygen.exeを実行してid_rsaの秘密鍵から
putty用の秘密鍵を作成する。

1, puttygen.exeを実行
2, 今回rsaでid_rsaを作成したので Prametersは SSH-2 RSAにチェックを入れる。
3, Load an existing private key file のLoadを選択する。
4, ファイルの種類を ALL Fileを選択する。
5, ファイル名をid_rsaを選択して開く

6,Puttugem:Enter Passphrase for key と出るので
上記の④にて鍵作成時のパスワードを入力してOK

7,Save private keyを選択する。
8,private_key.ppkという名前にして保存。
ファイルの種類はPuTTy Private Key Files(*.ppk)で問題なし。
  保存したらPuTTY Key Generatorを左上の×で閉じる。

⑪次はサーバ内の/etc/ssh/sshd_configの設定。

# vi /etc/ssh/sshd_config

■Port 22

sshdが利用するポートはデフォルトで22です。
デフォルトのままだとクラッカーに狙われるので
30000だとかポートがかぶらないポートにする。
今回の例だと22222に変更します。

■Protocol 2

ssh version2プロトコルを指定する設定。
version1は盗聴者がセキュリティが2より弱いので
2を使用する。
今度覚えてたら調べます。

■PermitRootLogin no

rootのログインをできないようにする。
外からアクセスできるサーバとかだと必須。
rootは管理者権限なので誰でもアクセスできると
ファイルを勝手にいじられてバグがでたりすると
こまります。

■PermitEmptyPasswords no

空のパスワードをなくす

これでもいいと思うのだが、
いっちゃんセキュリティが高いのは


■PasswordAuthentication no
■ChallengeResponseAuthentication no


PasswordAuthentication noのみをnoと設定しても
ChallengeResponseAuthentication がyesだと
パスワードでの認証ができてしまう。
ここが大事。
先日、外部とつなげられるサーバを構築したのだが、
ここの設定を変更しわすれてしまい、
認証鍵をはじいたら、
linuxのユーザのパスワードでアクセスできてしまうことが
起きてしまった。
しばらくsshの鍵の作成をしていなかったから
手順を忘れてしまったのだなと落ち込んだ。



■PubkeyAuthentication yes
  AuthorizedkeysFile    .ssh/authorized_keys

ssh2の公開鍵認証方式を有効にする。
.ssh/authorized_keys(公開鍵)はデフォルトの設定

上記の⑥で公開鍵をneko_keysとした場合

  AuthorizedkeysFileは
AuthorizedkeysFile    .ssh/neko_keys
となります。


⑫/etc/ssh/sshd_configの変更点まとめ

Port 22222
Protocol 2
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
 
とまぁこんな感じです。
各項目の説明は⑪をみてください。

そうそう今回はいれてないけどユーザの制限もできます。

■ユーザの制限

AllowUsers/DenyUsersの設定でssh接続できるユーザを制限することができます。

AllowUsers tanaka itou
tanakaとitouのユーザアカウントのみssh接続許可

DenyUsersは接続拒否

⑬sshdデーモン(サービス)の再起動

# /etc/init.d/sshd restart

sshd_configの内容を変更したら
sshdを再起動します。

デーモンはWindowsでいうサービスと同義語とのこと


⑭puttyからログインしてみよう。

今回の設定だと
ホスト名: 192.168.1.10(sshd_config設定したPCのIPアドレス)
ポート: 22222
セッション一覧:ssh-test (適当に名前をつける)
認証 : private_key.ppk(⑩-8で作成したカギ)

認証は
接続→SSH→認証→認証のためのプライベートキーファイルを参照して設定します。

全部設定できたらセッションにて保存します。
そして開くを選択
するとlogin as: と表示されるので

login as: user1
と入力してEnter
少し待つ。
Passphrase for key "imported-openssh-key";と表示されたら
公開鍵認証成功
あとひといき!

Passphrase for key "imported-openssh-key"; 上記④で設定したパスワード入力

[user@host01]$

これでおk

あーもう3時だ。orz
間違えていたら書き直します。寝る。


PR
【2010/05/25 00:58 】 | Linux-CentOS | 有り難いご意見(0) | トラックバック()
<<リモートユーザの確認コマンド(who と w) | ホーム | 明日仕事>>
有り難いご意見
貴重なご意見の投稿














虎カムバック
トラックバックURL

<<前ページ | ホーム | 次ページ>>