SSH2
2006年07月10日
CentOSでPuTTYによるリモート接続をする(LINUX)
PuTTYってなに?
SSH方式によるサーバへの接続を提供するフリーのソフトウェアです。
入力中、ウインドウを広げたりしても表示がおかしくなったりしないので今のところ一番使いやすいと思いました。
PuTTY日本語化ダウンロードサイトからパッチ済みのPuTTY日本語版のアプリケーション(実行ファイル)をダウンロードしてください。
[1]"秘密鍵"をPuTTYで使用できるように変換します。
[2]"秘密鍵"を読み込みます。
「Load」ボタンをクリック
[3]"サーバよりコピーした秘密鍵"を選択します。
ファイルの種類が[PuTTY private key(*.ppk)]になっているので、[All Files(*.*)]を選択して、「id_rsa」を開きます。
※場所:C:\id_rsa
[4]"パスワード"を入力し、認証させます。
「PuTTYgen: Enter Passphrase」というパスワード入力画面が立ち上がります。のでLINUXで設定したパスワードを入力します。
パスワードが通ると「認証OKの画面(PuTTYgen Notice)」が表示されます。
[5]"パスワード"を入力します。
「Save privte key」ボタンをクリック
[6]"ジェネレートされた秘密鍵"を保存します。
「PuTTY日本語版」アプリケーションのあるフォルダなど分かりやすい場所に設置します。(後にまた使用するファイルとなります)
[7]"ジェネレートされた秘密鍵"を保存します。
「PuTTY日本語版」アプリケーションのあるフォルダなど分かりやすい場所に「名前をつけて(ユーザー名など)」保存します。(後にまた使用するファイルとなります)
[8]"PuTTYgen"を終了します。
メニューより[File]-[Exit]をクリック
PuTTYの設定を行います。
[9]"日本語版のPuTTY"を実行します。
[10]"セッション"を設定します。
ホスト名を"192.168.1.×(サーバのIP)"または"dyndnsblog.com(ホストネーム)"を入力
注)DNS名で入力の際は、LOCAL接続時は既にDNSサーバの構築済みで外部(WAN)からの接続はDNS登録済みである事。
またルータで転送設定を行っていないとサーバに接続できません。
[11]"保存されたセッション"に設定名を入力します。
「自宅サーバ」や「ホストネーム」(名前は自由)など分かりやすい名前にして設定します。
[12]"ウィンドウ→変換(文字コード)"を設定します。
受信されるデータの文字セット変換を「EUC-JP」に選択
[13]"接続(自動ログインユーザー)"を設定します。
サーバに送られるデータの自動ログインの「ユーザ名」を入力
[14]"プライベートキーファイル"を指定します。
「接続→SSH→認証」で「Browse」ボタンをクリックして、「秘密鍵をジェネレートして保存したユーザー名.ppkファイル」を指定
[15]"設定"を保存します。
「セッション」に戻り、構成を保存
以上で設定は終了です。次に接続のテストを行います。
[16]"PuTTY日本語版"で接続します。
Using username "ユーザー名".
Authenticating with public key "imported-openssh-key"
Passphrase for key "imported-openssh-key":(パスワードを入力)
[ユーザー名@admin]$ (SSHでログイン成功!!)
最後にtelnet-serverを停止させます。
[16]"telnet-server"を停止します。
[root@admin]# vi /etc/xinetd.d/telnet
下記を入力する。
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
[16]"xinetd"を再起動します。
[root@admin]# /etc/rc.d/init.d/xinetd restart
これでサーバ直接ではなく、Windowsなどのクライアントマシンから操作する事ができます。
モニタ切り替え機をカチャカチャ忙しかったり、全て手打ちでの設定方法にお別れです!(これしないから上達しないのかなぁ)
【接続前の確認事項】
○ルータの設定でポート番号22番(SSH Remote Login Protocol)を開けてください。
○ルータの設定でポート番号23番(Telnet)を閉じてください。(任意です)
PuTTYを使用するのでセキュリティ上、閉じましょう
○ポートの開閉状態は、Shields UP!!(URL)で確認できます。
o Proceedボタンを押下します。
o All Service Ports ボタンを押下します。
o ポート22番がOpenになっている事を確認します。
o ポート23番がCloseになっている事を確認します。
SSH方式によるサーバへの接続を提供するフリーのソフトウェアです。
入力中、ウインドウを広げたりしても表示がおかしくなったりしないので今のところ一番使いやすいと思いました。
PuTTY日本語化ダウンロードサイトからパッチ済みのPuTTY日本語版のアプリケーション(実行ファイル)をダウンロードしてください。
[1]"秘密鍵"をPuTTYで使用できるように変換します。
[2]"秘密鍵"を読み込みます。
「Load」ボタンをクリック
[3]"サーバよりコピーした秘密鍵"を選択します。
ファイルの種類が[PuTTY private key(*.ppk)]になっているので、[All Files(*.*)]を選択して、「id_rsa」を開きます。
※場所:C:\id_rsa
[4]"パスワード"を入力し、認証させます。
「PuTTYgen: Enter Passphrase」というパスワード入力画面が立ち上がります。のでLINUXで設定したパスワードを入力します。
パスワードが通ると「認証OKの画面(PuTTYgen Notice)」が表示されます。
[5]"パスワード"を入力します。
「Save privte key」ボタンをクリック
[6]"ジェネレートされた秘密鍵"を保存します。
「PuTTY日本語版」アプリケーションのあるフォルダなど分かりやすい場所に設置します。(後にまた使用するファイルとなります)
[7]"ジェネレートされた秘密鍵"を保存します。
「PuTTY日本語版」アプリケーションのあるフォルダなど分かりやすい場所に「名前をつけて(ユーザー名など)」保存します。(後にまた使用するファイルとなります)
[8]"PuTTYgen"を終了します。
メニューより[File]-[Exit]をクリック
PuTTYの設定を行います。
[9]"日本語版のPuTTY"を実行します。
[10]"セッション"を設定します。
ホスト名を"192.168.1.×(サーバのIP)"または"dyndnsblog.com(ホストネーム)"を入力
注)DNS名で入力の際は、LOCAL接続時は既にDNSサーバの構築済みで外部(WAN)からの接続はDNS登録済みである事。
またルータで転送設定を行っていないとサーバに接続できません。
[11]"保存されたセッション"に設定名を入力します。
「自宅サーバ」や「ホストネーム」(名前は自由)など分かりやすい名前にして設定します。
[12]"ウィンドウ→変換(文字コード)"を設定します。
受信されるデータの文字セット変換を「EUC-JP」に選択
[13]"接続(自動ログインユーザー)"を設定します。
サーバに送られるデータの自動ログインの「ユーザ名」を入力
[14]"プライベートキーファイル"を指定します。
「接続→SSH→認証」で「Browse」ボタンをクリックして、「秘密鍵をジェネレートして保存したユーザー名.ppkファイル」を指定
[15]"設定"を保存します。
「セッション」に戻り、構成を保存
以上で設定は終了です。次に接続のテストを行います。
[16]"PuTTY日本語版"で接続します。
Using username "ユーザー名".
Authenticating with public key "imported-openssh-key"
Passphrase for key "imported-openssh-key":(パスワードを入力)
[ユーザー名@admin]$ (SSHでログイン成功!!)
最後にtelnet-serverを停止させます。
[16]"telnet-server"を停止します。
[root@admin]# vi /etc/xinetd.d/telnet
下記を入力する。
# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
[16]"xinetd"を再起動します。
[root@admin]# /etc/rc.d/init.d/xinetd restart
これでサーバ直接ではなく、Windowsなどのクライアントマシンから操作する事ができます。
モニタ切り替え機をカチャカチャ忙しかったり、全て手打ちでの設定方法にお別れです!(これしないから上達しないのかなぁ)
【接続前の確認事項】
○ルータの設定でポート番号22番(SSH Remote Login Protocol)を開けてください。
○ルータの設定でポート番号23番(Telnet)を閉じてください。(任意です)
PuTTYを使用するのでセキュリティ上、閉じましょう
○ポートの開閉状態は、Shields UP!!(URL)で確認できます。
o Proceedボタンを押下します。
o All Service Ports ボタンを押下します。
o ポート22番がOpenになっている事を確認します。
o ポート23番がCloseになっている事を確認します。
CentOSでOpenSSHをインストールする(LINUX)
OpenSSHってなに?
一般的にはTelnetで操作しますが、隔地(特にWANからの操作)からのログイン等、パスワード等が見られる可能性があり危険なので通信内容を暗号化して通信が出来るSSHを使用します。SSHの接続方式にはSSH1とSSH2がありSSH2の方が、SSH1より強固な暗号化になっています。・・という事で今回はSSH2の設定方法を記載します。
(準備)SSHサーバーアンインストールをします。
最初に既にインストールされて起動しているSSHサーバーをアンインストール。
[1]"SSHサーバー"の停止をします。
[root@admin]# /etc/rc.d/init.d/sshd stop
[2]"openssh関連パッケージ"のアンインストールをします。
[root@admin]# yum -y remove openssh
次はSSH2のインストール方法です。
[3]"openssh-server"のインストールをします。
[root@admin]# yum -y install openssh-server
[4]"openssh-clients"のインストールをします。
[root@admin]# yum -y install openssh-clients
[5]"sshd_config"の設定を3カ所編集します。
#PermitRootLogin yes
↓
PermitRootLogin no
#PermitEmptyPasswords no
↓
PermitEmptyPasswords no
#PasswordAuthentication yes
↓
PasswordAuthentication no
[6]"OpenSSH"の再起動をします。
[root@admin]# /etc/rc.d/init.d/sshd restart
※ちなみに最初に"OpenSSH"を停止しているので、最初にエラーが表示されます。
sshdを停止中: [ ERROR ]
問題ありませんが、不安な人はもう一度再起動してみると"OK"が確認できます。
sshdを停止中: [ OK ]
sshdを起動中: [ OK ]
"SSH2の鍵"をを作成するユーザーになります。
[7]"現在のユーザー"の確認を行います。
[root@admin]$ whoami
[8]"鍵の持ち主"のユーザーに変更します。
[root@admin]# su - ユーザー名
※後にSSHでログインする際のログインユーザー名となります。
[9]"root(管理者)"をログアウトします。
[root@admin root]# exit
logout(ログアウトしました)
[ユーザー名@admin]$
次はSSH2の鍵の作成方法です。
[10]"SSH2の鍵"を作成します。
[ユーザー名@admin root]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
何も入力しないで「ENTER」ボタンを押す。
Created directory '/home/linux/.ssh'.
パスワード(SSH2のパスワード)入力
Enter passphrase (empty for no passphrase):
パスワードの再入力(SSH2のパスワード再入力※上記と同じ)
[11]"鍵の作成先"を表示します。
[ユーザー名@admin root]$ ls -la /home/linux/.ssh/
[12]"authorized_keys"に追加します。
[ユーザー名@admin root]$ cat /home/linux/.ssh/id_rsa.pub >> /home/linux/.ssh/authorized_keys
[13]"公開鍵を自分のみアクセス可能"に変更します。
[ユーザー名@admin root]$ chmod 600 /home/linux/.ssh/authorized_keys
[14]"公開鍵"を削除します。
[ユーザー名@admin root]$ rm -f /home/linux/.ssh/id_rsa.pub
[15]"鍵の作成先"を表示します。
[ユーザー名@admin root]$ ls -la /home/linux/.ssh/
以上の作業で「鍵」の作成は終了です。
次にサーバにある鍵を作成したid_rsaがクライアントから接続するそのユーザの鍵となります。
この鍵を接続するクライアントへコピーをします。
クライアントへコピーする方法は2つあります。
【A:フロッピーディスクにコピーする方法】
[A-1]"フロッピー"をマウントします。
[root@admin root]# mount /mnt/floppy/
[A-2]"秘密鍵をフロッピー"に移動します。
[root@admin root]# mv /home/ユーザー名/.ssh/id_rsa /mnt/floppy/
[A-3]"フロッピーのマウント"を解除します。
[root@admin root]# umount /mnt/floppy/
【B:FTPによりネットワーク経由でコピーする方法】
[B-1]"yumでFTPサーバ"をインストールします。
[root@admin root]# yum -y install vsftpd
[B-2]"FTPサーバ"を起動します。
[root@admin root]# /etc/rc.d/init.d/vsftpd start
次はWindowsなどの「クラインアントマシン」DOS窓を使用します。
[B-3]"ファイル名を指定して実行"に「cmd」と入力して立ち上げます。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\client>
[B-4]"ローカルのカレント"をC:\と入力します。
C:\Documents and Settings\client>cd \
[B-5]"FTPでサーバに接続"サーバのIPを入力します。
C:\>ftp 192.168.1.×
[B-6]"ユーザー名"を入力します。
User (192.168.1.5:(none)): ユーザー名
331 Please specify the password.
[B-7]"パスワード"を入力します。
Password:******
230 Login successful.
[B-7]"転送をバイナリモード"に設定します。
ftp> bin
[B-8]"秘密鍵"を取得します。
ftp> get /home/linux/.ssh/id_rsa
[B-9]"サーバの秘密鍵"を削除します。
ftp> delete /home/linux/.ssh/id_rsa
[B-10]"FTP接続"を終了します。
ftp> bye
[B-11]"ローカルの確認"で"id_rsa"を確認します。
C:\>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 649A-F32D です
C:\ のディレクトリ
2004/09/02 14:34 0 AUTOEXEC.BAT
2004/09/02 14:34 0 CONFIG.SYS
2004/09/02 14:48 Documents and Settings
2004/09/23 10:16 951 id_rsa ← コピーされている
2004/09/22 10:02 Program Files
2004/09/06 11:58 WINDOWS
3 個のファイル 951 バイト
3 個のディレクトリ 5,651,943,424 バイトの空き領域
[B-12]"DOS"を終了します。
C:\>exit
以上で「クライアントマシン」の設定は終了です。
次にまたLINUXでの操作となります。([15]の続き)
[16]"FTPサーバ"を終了します。
[root@admin root]# /etc/rc.d/init.d/vsftpd stop
[17]"FTPサーバ"をアンインストールします。
[root@admin root]# yum -y remove vsftpd
※アンインストールせずとも「自動起動の停止と確認」を行ってもOK!
FTPサービスの自動起動停止
[root@admin root]# chkconfig vsftpd off
FTPサービスの自動起動確認
[root@admin root]# chkconfig --list vsftpd
下記、確認表示
vsftpd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
・・・で全てOFFになっていればOKです。
次にPuTTY日本語版によるリモート接続の設定を行います。
FTPサーバの設定はこちらです。
一般的にはTelnetで操作しますが、隔地(特にWANからの操作)からのログイン等、パスワード等が見られる可能性があり危険なので通信内容を暗号化して通信が出来るSSHを使用します。SSHの接続方式にはSSH1とSSH2がありSSH2の方が、SSH1より強固な暗号化になっています。・・という事で今回はSSH2の設定方法を記載します。
(準備)SSHサーバーアンインストールをします。
最初に既にインストールされて起動しているSSHサーバーをアンインストール。
[1]"SSHサーバー"の停止をします。
[root@admin]# /etc/rc.d/init.d/sshd stop
[2]"openssh関連パッケージ"のアンインストールをします。
[root@admin]# yum -y remove openssh
次はSSH2のインストール方法です。
[3]"openssh-server"のインストールをします。
[root@admin]# yum -y install openssh-server
[4]"openssh-clients"のインストールをします。
[root@admin]# yum -y install openssh-clients
[5]"sshd_config"の設定を3カ所編集します。
#PermitRootLogin yes
↓
PermitRootLogin no
#PermitEmptyPasswords no
↓
PermitEmptyPasswords no
#PasswordAuthentication yes
↓
PasswordAuthentication no
[6]"OpenSSH"の再起動をします。
[root@admin]# /etc/rc.d/init.d/sshd restart
※ちなみに最初に"OpenSSH"を停止しているので、最初にエラーが表示されます。
sshdを停止中: [ ERROR ]
問題ありませんが、不安な人はもう一度再起動してみると"OK"が確認できます。
sshdを停止中: [ OK ]
sshdを起動中: [ OK ]
"SSH2の鍵"をを作成するユーザーになります。
[7]"現在のユーザー"の確認を行います。
[root@admin]$ whoami
[8]"鍵の持ち主"のユーザーに変更します。
[root@admin]# su - ユーザー名
※後にSSHでログインする際のログインユーザー名となります。
[9]"root(管理者)"をログアウトします。
[root@admin root]# exit
logout(ログアウトしました)
[ユーザー名@admin]$
次はSSH2の鍵の作成方法です。
[10]"SSH2の鍵"を作成します。
[ユーザー名@admin root]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
何も入力しないで「ENTER」ボタンを押す。
Created directory '/home/linux/.ssh'.
パスワード(SSH2のパスワード)入力
Enter passphrase (empty for no passphrase):
パスワードの再入力(SSH2のパスワード再入力※上記と同じ)
[11]"鍵の作成先"を表示します。
[ユーザー名@admin root]$ ls -la /home/linux/.ssh/
[12]"authorized_keys"に追加します。
[ユーザー名@admin root]$ cat /home/linux/.ssh/id_rsa.pub >> /home/linux/.ssh/authorized_keys
[13]"公開鍵を自分のみアクセス可能"に変更します。
[ユーザー名@admin root]$ chmod 600 /home/linux/.ssh/authorized_keys
[14]"公開鍵"を削除します。
[ユーザー名@admin root]$ rm -f /home/linux/.ssh/id_rsa.pub
[15]"鍵の作成先"を表示します。
[ユーザー名@admin root]$ ls -la /home/linux/.ssh/
以上の作業で「鍵」の作成は終了です。
次にサーバにある鍵を作成したid_rsaがクライアントから接続するそのユーザの鍵となります。
この鍵を接続するクライアントへコピーをします。
クライアントへコピーする方法は2つあります。
【A:フロッピーディスクにコピーする方法】
[A-1]"フロッピー"をマウントします。
[root@admin root]# mount /mnt/floppy/
[A-2]"秘密鍵をフロッピー"に移動します。
[root@admin root]# mv /home/ユーザー名/.ssh/id_rsa /mnt/floppy/
[A-3]"フロッピーのマウント"を解除します。
[root@admin root]# umount /mnt/floppy/
【B:FTPによりネットワーク経由でコピーする方法】
[B-1]"yumでFTPサーバ"をインストールします。
[root@admin root]# yum -y install vsftpd
[B-2]"FTPサーバ"を起動します。
[root@admin root]# /etc/rc.d/init.d/vsftpd start
次はWindowsなどの「クラインアントマシン」DOS窓を使用します。
[B-3]"ファイル名を指定して実行"に「cmd」と入力して立ち上げます。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\client>
[B-4]"ローカルのカレント"をC:\と入力します。
C:\Documents and Settings\client>cd \
[B-5]"FTPでサーバに接続"サーバのIPを入力します。
C:\>ftp 192.168.1.×
[B-6]"ユーザー名"を入力します。
User (192.168.1.5:(none)): ユーザー名
331 Please specify the password.
[B-7]"パスワード"を入力します。
Password:******
230 Login successful.
[B-7]"転送をバイナリモード"に設定します。
ftp> bin
[B-8]"秘密鍵"を取得します。
ftp> get /home/linux/.ssh/id_rsa
[B-9]"サーバの秘密鍵"を削除します。
ftp> delete /home/linux/.ssh/id_rsa
[B-10]"FTP接続"を終了します。
ftp> bye
[B-11]"ローカルの確認"で"id_rsa"を確認します。
C:\>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 649A-F32D です
C:\ のディレクトリ
2004/09/02 14:34 0 AUTOEXEC.BAT
2004/09/02 14:34 0 CONFIG.SYS
2004/09/02 14:48
2004/09/23 10:16 951 id_rsa ← コピーされている
2004/09/22 10:02
2004/09/06 11:58
3 個のファイル 951 バイト
3 個のディレクトリ 5,651,943,424 バイトの空き領域
[B-12]"DOS"を終了します。
C:\>exit
以上で「クライアントマシン」の設定は終了です。
次にまたLINUXでの操作となります。([15]の続き)
[16]"FTPサーバ"を終了します。
[root@admin root]# /etc/rc.d/init.d/vsftpd stop
[17]"FTPサーバ"をアンインストールします。
[root@admin root]# yum -y remove vsftpd
※アンインストールせずとも「自動起動の停止と確認」を行ってもOK!
FTPサービスの自動起動停止
[root@admin root]# chkconfig vsftpd off
FTPサービスの自動起動確認
[root@admin root]# chkconfig --list vsftpd
下記、確認表示
vsftpd 0:オフ 1:オフ 2:オフ 3:オフ 4:オフ 5:オフ 6:オフ
・・・で全てOFFになっていればOKです。
次にPuTTY日本語版によるリモート接続の設定を行います。
FTPサーバの設定はこちらです。