きまぐれほげほげひろば

windowsからsshでLinuxに接続する方法

Windows上の TeraTerm & TTSSH から SSH でLinuxに接続する方法です。鍵ファイルを用いて、鍵ファイルを持っている人からしかログインできなくするようにします。これで安全ですね。

設定時の環境
RedHat Linux 9
OpenSSH 3.5p1-11

ssh のサーバーである sshd の設定をします。設定ファイルは /etc/ssh/sshd_config です。ここで鍵ファイルを持っている人からしかログインできなくするように設定します。

# vi /etc/ssh/sshd_config
# (省略)
#PasswordAuthentication yes
#  ↓ 変更
PasswordAuthentication no            #コメントアウトして yes から no に変更
# (省略)

sshd を再起動して設定を有効にする。

# /sbin/service sshd restart

クライアントのアクセス制御に必要な鍵ファイルの作成を行います。 鍵ファイルはrsa バージョン1 で作成します。 Windowsから接続したいユーザで作業を行います。

$ ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/user/.ssh/identity):   ←出力先を指定。未入力なら括弧の中の場所
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):                       ←パスフレーズ(=パスワード)を入力
Enter same passphrase again:                                      ←確認のため
Your identification has been saved in /home/user/.ssh/identity.
Your public key has been saved in /home/user/.ssh/identity.pub.
The key fingerprint is:
12:34:56:78:9a:bc:de:f0:12:34:56:78:9a:bc:de:f0 user@hogehoge

パスフレーズはログインの際に使用するので覚えておくこと!!

鍵の生成を確認

$ ls -l .ssh
合計 8
-rw-------    1 user  user       529  3月 30 21:46 identity      ←秘密鍵
-rw-r--r--    1 user  user       333  3月 30 21:46 identity.pub  ←公開鍵

公開鍵を ~/.ssh/authorized_keys に登録 ~/.ssh/authorized_keysは複数の公開鍵を格納可能

$ cat ~/.ssh/identity.pub >> ~/.ssh/authorized_keys

~/.ssh/authorized_keys の権限を自分以外読み取れないように変更

$ chmod 600 ~/.ssh/authorized_keys
$ ls -l ~/.ssh/authorized_keys
-rw-------    1 user  user       333  3月 30 21:51 /home/user/.ssh/authorized_keys

ここからWindows。
FTPで秘密鍵ファイルをダウンロードする。バイナリモードで。

ftp
ftp> open hogehoge
ftp> binary
ftp> get .ssh/identity
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for .ssh/identity (529 bytes).
226 File send OK.
ftp: 529 bytes received in 0.00Seconds 529000.00Kbytes/sec.

ターミナルエミュレータにはTeraTermと、そのSSH拡張モジュールであるTTSSHを使います。
ダウンロードは以下から。
Tera Term Pro ver. 2.3
http://hp.vector.co.jp/authors/VA002416/
文字コードがUTP-8なLinux(FedoraCoreなど)の場合はこちらも
UTF-8対応TeraTerm Pro
http://www.vector.co.jp/soft/winnt/net/se320973.html
TTSSH
http://www.zip.com.au/~roca/ttssh.html

TeraTermのインストール方法は省略。
TTSSHはダウンロードしたZIPファイルを展開して、出てきた中身(DLLとEXEなど)を TeraTermをインストールしたフォルダにコピーします。 (ttermpro.exeとおなじフォルダにttssh.exeがいる状態にする。)

ttermpro.exe ではなく ttssh.exe を実行します。すると以下の画面が表示されます。
ホストの選択
「Host:」では接続ホストを選択します。
「Service:」では接続するサービス名とポート番号を選びます。ここではSSHで接続するのでSSHを選びます。ポート番号はSSHを選択した時に自動で入力されます。

次に警告画面が現れますが無視して「Connect」を押します。

さらに、次はエラーがでてきてしまいますが無視します

次にSSHでのログイン画面になります。サーバー側で、秘密鍵を用いた認証しか認めていないので「Use RSA key to log in」がデフォルトで選択されています。 横のテキストボックスに、先ほどダウンロードした秘密鍵のパスを指定します。 上部の「UserName」にはログインユーザ名、「Passphrase」には鍵ファイルを生成するときに入力したパスフレーズを入力します。

以上で、SSHでLinuxに接続できます。


# vi /etc/hosts.deny
sshd : ALL       #デフォルトで全端末からの接続を否定
	

# vi /etc/hosts.allow
sshd : 192.168.1.1      # 192.168.1.1からだけ接続を許可
戻る