昨今のWindows用 SSHクライアントは何が使われているのかなと検索してみたら、「Windows版 OpenSSHが出た」とのことで従来より簡単にSSH接続できるようになったみたい。
なので、PowershellからLinuxに繋いでみることにします。
(結論としては、使えますが別に使いやすくはないです。なんか不安定だし、所々機能不全。他のクライアントを使った方が色々便利に作業できると思います。とはいえ Windowsに初めから入ってるので取り急ぎ繋ぎたい場合には良いかと。というか「Windows版 OpenSSHが出た」という言葉通り、WindowsをSSHサーバーにして Linux→Windowsという接続ができるようになったことの方が有意義ですね……)
まずホスト Linux側。CentOSで試しました。OpenSSHサーバーのインストールとサービスの起動確認をします。
CentOS 6 の場合
$ rpm -qa | grep ssh
libssh2-1.4.2-2.el6_7.1.x86_64
openssh-askpass-5.3p1-118.1.el6_8.x86_64
openssh-5.3p1-118.1.el6_8.x86_64
openssh-clients-5.3p1-118.1.el6_8.x86_64
openssh-server-5.3p1-118.1.el6_8.x86_64
(インストールされていなかったら # yum install openssh-server で入れてください)
$ chkconfig --list | grep sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# service sshd status
openssh-daemon (pid 2116) を実行中...
CentOS 7 の場合。
# systemctl start sshd
# systemctl enable sshd
# systemctl status sshd とか。
次にクライアント Windows側。GitHubからOpen-SSHをダウンロードし、Zipファイルを解凍し適当な場所に置きます。
Releases · PowerShell/Win32-OpenSSH · GitHub
[システムのプロパティ](Windows+R に sysdm.cpl)→[詳細設定タブ]→[環境変数]のユーザー環境変数にPathを追加します。私はD:\Download\OpenSSH-Win64;
Windowsを再起動させておきます。
さて、環境が整ったらWindowsからLinuxへ繋いでみます。
PS D:\> ssh XXXXXX@192.168.10.2 (アドレスは<user>@<hostname>などに適宜変更を。パスを通す前なら PS D:\> .\Download\OpenSSH-Win64\ssh.exe XXXXXX@192.168.10.2)
The authenticity of host '192.168.10.2 (192.168.10.2)' can't be established.
RSA key fingerprint is SHA256:XXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)?
yes
XXXXXX@192.168.10.2's password:
Last login: Thu Jun 16 23:38:54 2016 from 192.168.10.2
入れました。
$ pwd
/home/XXXXXX
ただ、日本語が文字化けする。
$ ls
NVIDIA-Linux-x86_64-304.131.run 繝繧ヲ繝ウ繝ュ繝シ繝・ 繝・Φ繝励Ξ繝シ繝・ 繝・せ繧ッ繝医ャ繝
・日本語が文字化けする!
・PowerShellのメニューから「プロパティ」を選択して、「フォント」タブで「MSゴシック」に変更する。
というわけで、一度 exitしてPowerShellに戻って、プロパティから「MSゴシック」に変更して、OKを押して閉じようとしたらエラーが出た。
---------------------------
ショートカットの更新エラー
---------------------------
ショートカットを変更できません:
ショートカットが削除されていないか、または名前が変更されていないか確認してください。
---------------------------
OK
---------------------------
管理者権限でPowerShellを実行する必要があるようです。
https://support.microsoft.com/ja-jp/kb/2524386
PowerShellを右クリックして[管理者権限で実行]する。[プロパティ][フォント][MSゴシック] 変更できた。
次にchcp
で文字エンコードを 65001 に変更する。
PS C:\Windows\system32> chcp
現在のコード ページ: 932
PS C:\Windows\system32> chcp 65001
Active code page: 65001
再度挑戦。
PS C:\Windows\system32> ssh XXXXXX@192.168.10.4
XXXXXX@192.168.10.4's password:
Last login: Fri Jun 17 XX:XX:XX 2016 from 192.168.10.2
$ pwd
/home/XXXXXX
$ ls
NVIDIA-Linux-x86_64-304.131.run ダウンロード テンプレート デスクトップ
いけた。
でも接続を切るときに反応が悪かったり色々と不安定。あまりお勧めしない。
後日やる。
# vi /etc/hosts.deny
ALL:all
# vi /etc/hosts.allow
sshd:192.168.10.3
PAMによるアクセス制限
/etc/ssh/sshd_config
UsePAM yes
linuxgroupに属しているユーザのみをsshでサーバにログインできるように設定
# vi /etc/security/access.conf
-:ALL EXCEPT linuxgroup:ALL
# vi /etc/pam.d/sshd
account required pam_access.so
パスワード方式ではなく公開鍵方式へ。など、後日。
it.srad.jp 懐かしい。
PuTTY: a free SSH and Telnet client
やっぱりこのあたりですかね。