ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
RedHat9でのSSHの使用方法。ネットで検索するといろいろとなやり方が乗っているけど、バージョンが古かったりOpenSSHでなかったり。試行錯誤の末やっとRH9でも以下のことができたのでメモっておきます。
① RSAによるSSH接続
② RSAによるホスト認証(パスワード入力を求められない)
③ TeraTermProからのSSH接続
① RSAによるSSH接続
クライアント(接続元)側での設定作業
・秘密鍵・公開鍵の生成
[root@client .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): ★パスフレーズの入力
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
05:48:92:18:1b:1e:0b:b0:4e:45:06:b7:12:ad:04:6f root@server
[root@client .ssh]#
サーバ(接続先)側での設定作業
・クライアント側(接続元)の公開鍵をコピーしてくる。(方法は何でもいい)
[root@server .ssh]# scp -p client:/root/.ssh/*.pub .
The authenticity of host 'client (192.168.xx.xxx)' can't be established.
RSA key fingerprint is f7:58:68:94:45:93:90:50:8b:6b:d6:f2:5c:cb:0a:7b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server,192.168.xx.xxx' (RSA) to the list of known hosts.
root@client's password:★rootのパスワードを求めている
id_rsa.pub 100% |*****************************| 225 00:00
[root@server .ssh]#
rootのパスワードを入れればインストールしたままの状態でもSSHは効くはずです。
authorized_keysという名前で保存。(authorized_keys2という説明もあるけどSSH3からはauthorized_keysファイルに統一とのこと)
[root@server .ssh]# mv id_rsa.pub authorized_keys
これでOK。(authorized_keyのパーミッションも644でOKです。)
[root@client .ssh]# ssh server
Enter passphrase for key '/root/.ssh/id_rsa': ★パスフレーズの入力を求めている
Last login: Sun Aug 8 04:17:40 2004 from client
[root@server root]#
② RSAによるホスト認証(パスワード入力を求められない)
サーバ側のsshdの設定変更とクライアント側のsshクライアントの設定変更が必要。
サーバ側/etc/ssh/sshd_config(ssh_configではない)を編集
デフォルトと違う箇所は以下の箇所
IgnoreRhosts no
RhostsRSAAuthentication yes
HostbasedAuthentication yes
PasswordAuthentication no
AllowUsers
また、サーバ側のknow_hostsにクライアントの公開鍵を登録しておく。
[root@server .ssh]# ssh client
The authenticity of host 'client (192.168.xx.xxx)' can't be established.
RSA key fingerprint is 00:46:3c:a8:42:47:47:ae:a8:88:40:61:4a:c9:da:0a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'client,192.168.30.120' (RSA) to the list of known hosts.
root@client's password: ★実際にログインしなくてもいい
[root@server .ssh]#
そしてservice sshd restartによりsshdの再起動
次にクライアント側/etc/ssh/ssh_config(sshd_configではない)を編集
デフォルトと違う箇所は以下の箇所
RhostsRSAAuthentication yes
HostbasedAuthentication yes
こちらはsshdの再起動は必要ない(当然か)
するとパスワードの入力を求められずにssh可能。当然scpもOk.
[root@client .ssh]# ssh server
Last login: Sun Aug 8 04:44:32 2004 from client
[root@server root]#
③ TeraTermProからのSSH接続
自分の使用するTeraTermはUTF-8が表示できるパッチをあててあるんだけど、READMEによるとTTSSHの利用も可能とのこと。
さっそくTTSH日本語版をゲット。
TTSSHをTeraTermインストールフォルダにコピー。
本家サイトからTTSSHをダウンロードしてttssh.exeもTeraTermインストールフォルダにコピーして終わり。
ttssh.exeを起動します。
まだ設定が済んでいないのでとりあえずキャンセルし、SSHの設定をします。
ssh_know_hostsファイルの指定をします。うちの環境ではマイドキュメントがサーバ上にあり、他のユーザには見えないところにあるので、そこにssh_know_hostsファイルを置きます。
設定をセーブしてとりあえず終了。
LINUXサーバ側では、秘密鍵と公開鍵のペアを作成します。
TTSSHはRSA1にしか対応していないためそれようのキーペアが必要です。
本来はTeraTermがインストールされているPCにてキーペアを作成し、できた公開鍵をLinux側にコピーするのが本来です。が、PCではssh-keygenがない(あってもバグが多い)ので、Linux側でキーペアを作成して、秘密鍵をPC側に持ってきます。
[root@server .ssh]# ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/root/.ssh/identity):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/identity.
Your public key has been saved in /root/.ssh/identity.pub.
The key fingerprint is:
21:cd:44:b2:27:f1:84:df:30:9a:23:0b:41:6b:8d:ab root@server
[root@server .ssh]#
さらに、Linux側では公開鍵をauthorized_keysに追記します。
[root@server .ssh]# cat identity.pub >> authorized_keys
秘密鍵のidentityファイルはPC上に持ってきます。
どうも何度セーブしてもTeraTermに設定がほぞんされないので、teraterm.iniを直接編集することに。
[TTSSH]
Enabled=1
Compression=0
DefaultUserName=root
DefaultForwarding=
CipherOrder=302615
KnownHostsFiles=GwPubsetoatuMy Documentsssh_known_hosts
DefaultRhostsLocalUserName=
DefaultRhostsHostPrivateKeyFile=
DefaultRSAPrivateKeyFile=GwPubsetoatuMy Documentsidentity
DefaultAuthMethod=2
TryDefaultAuth=1
LogLevel=0
WriteBufferSize=2097152
LocalForwardingIdentityCheck=0
この設定をすれば、あとはパスフレーズを入力すればいいだけの画面になります。
ただし以下のポップアップが出てしまう…。どうして?