MENU

PCやスマートフォンなどのSSHクライアントから、自宅のSSHサーバ(Windows、Linux)へアクセスする方法

PCやスマートフォンなどのSSHクライアントから、自宅のSSHサーバ(Windows、Linux)へアクセスする方法です。

 

自宅のPCがLinux1台のみの場合やVPSのLinuxに対して、SSHポート転送とVNCリモート接続を行う場合

以下のページを参照して下さい。
ServersMan@VPS(CentOS7) VNCでリモートデスクトップとWindows/AndroidでSSHポートフォワード方法

 

 

自宅のPCがWindows1台のみで、そのWindowsへ外出先からSSH接続しVNCでのリモート接続も行いたい場合

以下のページを参照して下さい。自宅のブロードバンドルーターにリモート機能
(IPsecやPPTP)が無くてもSSHで暗号化を担うという形です。

 

PCやスマートフォンなどのSSHクライアントから、自宅のSSHサーバ(Windows、Linux)へアクセスし、その後VNCでリモートデスクトップ接続する方法

 

 

自宅のPCがWindows1台のみで、そのWindowsへ外出先からSSH接続やSFTPによるファイル送受信を行いたい場合

本ページの情報を参照して下さい。

 

 

SSH、SFTPでコマンドラインや、ファイルの送受信が行います。
またSSHでのポート転送を利用するとその他のことも行えます。

 

VNCビューアとServerauditorのポート転送機能を使用してVNCサーバ
(CentOS)へリモートデスクトップ接続する方法は以下のページに記載しました。

 

 

Androidで使用するSSHクライアントは以下などが有りました。

 

※ポートフォワードは有料

 

 

 

今回のSSH接続について、100%安全なリモート方法と言うのは有りません。
セキュリティやリスクに関しては本サイトよりも詳しいインターネットサイトや
本などで事前に把握してから、設定の要否を検討してみて下さい。
レンタルサーバやVPSへのアクセスも現在は、今回の方法と同様に
SSHでのアクセスが主流であるため、安全性もだいたい同様かな
とは思います。

 

さらに安全性を考えるとルータのシスログやWindowsでのパケット警察などの
ログを参照してSSHアクセスが有ったことを通知するような仕組みを作るのが
良いかと思います。

 

 

 

本ページの目次

 

 

 

ポートの開放

 

前提として、プロバイダから自宅のモデムやルータに割り振られるIPアドレスが
グローバルIPであることが必要です。プライベートIPアドレスの場合、マイIP
固定グローバルIPアドレスを取得し設定することも可能です。

 

次に自宅のルータでSSHサーバ用のポート変換設定を行います。SSHの初期設定
ではtcp/22ですね。ポート変換以外(UPnP等)のポート開放については以下の
ページに記載しました。

 

 

次にWindowsやウィルス対策ソフトのファイアウォールでtcp/22を開けます。

 

 

 

自宅のWindowsでSSHサーバのインストール

 

自宅のWindowsへSSHサーバソフトのインストールなどを行います。
自宅のPCがLinuxの場合は、本サイトの以下のページなどを参照して見て下さい。

 

 

WindowsでのSSHサーバのソフトはfreeSSHdを使用しました。

 

ダウンロードページ

 

Windows版OpenSSHでも良いかもしれませんね。

 

インストールを行っていきます。「Next」をクリックします。

 

 

 

「Next」をクリックします。

 

 

 

「Next」をクリックします。

 

 

 

「Next」をクリックします。

 

 

 

「Next」をクリックします。

 

 

 

「Install」をクリックします。

 

 

 

「Close」をクリックします。

 

 

 

秘密鍵(プライベートキー)を作成するため「はい」をクリックします。

 

 

 

FreeSSHdをサービスとして動かすため「はい」をクリックします。

 

 

 

「Finish」をクリックします。

 

 

 

「OK」をクリックします。

 

 

 

タスクバーのFreeSSHdのアイコンを右クリックし「Setting」をクリックします。

 

 

 

ユーザーを作成するため「Users」→「Add」をクリックします。

 

 

 

ユーザーを作成します。認証方式は公開鍵暗号方式の方がセキュアです。
今回はパスワード認証方式にしました。
また、Shell、SFTP、Tunnelingの全てにチェックを入れました。

 

 

 

正しくユーザーが作成されました。

 

 

 

またルータのパケットフィルタやWindows側のファイアウォール、
ウィルス対策ソフトのファイアウォールで、接続元のグローバルIPアドレスを
大きくアクセス制限しておいても良いかもしれないですね。
外出先からドコモのテザリングを使用して自宅へアクセスするので有れば
ドコモのグローバルIPアドレスのみ許可するなど。

 

グローバルIPアドレスの管理者やサブネットはおよそ以下のサイトで分かるかと思います。

 

IPアドレス調査

 

 

 

AndroidでSSHクライアントのインストールとSSHサーバへの接続

 

■a. ConnectBotを使用する

 

ダウンロードページ

 

 

「ユーザ名@ホスト名:ポート」を入力します。ホスト名は、自宅(ルータ)の
グローバルIPアドレスやドメイン名です。ドメイン名で入力したい場合は
よくあるのは下記項目のダイナミックDNSサービスを利用する方法です。

 

 

 

作成された接続設定を押します。

 

 

 

パスワード入力などを行い、自宅のSSHサーバへ正しくログイン出来ることを確認します。

 

 

もし、ポート転送を行いたい場合は左下のメニューアイコンから進めることが
可能です。
文字が小さい場合はサイズ強制で46x17くらいに設定しても良いですね。

 

 

 

メニューアイコンを押し、「ポート転送の追加」を押します。

 

 

 

値を入力します。リモートデスクトップ接続であればポートは3389ですね。

 

 

 

■b. Serverauditorを使用する
Serverauditor - SSH/SFTP client
Crystalnix (2012-08-11)

 

 

ダウンロードページ

 

 

SSHサーバへの接続画面は以下です。先ほどのConnectBotとあまり
変わりません。必要な情報を入力して「Connect」を押す流れです。

 

 

 

メニューは左上のメニューアイコンを押すと表示されます。
もし、ポートフォワードを行うには「Hosts」にて事前に接続設定を作成してから
「Port Forwarding」をクリックしてポート転送設定を作成します。

 

 

 

「Port Forwarding」の画面。詳細は以下のページに記載しました。

 

 

 

自宅のWindowsでダイナミックDNSの設定

常に自宅へのアクセスは、SSHクライアントで自宅のグローバルIPアドレスを
入力して接続を行う、であれば以上で設定完了ですが、一般的には
自宅のグローバルIPアドレスは固定ではなく動的かと思います。

 

そのため、ダイナミックDNSの設定が必要になります。
不変のドメイン名でアクセス出来るようになりますね。

 

最近は自宅のブロードバンドルータやインターネットカメラでダイナミック
DNS設定を出来ることが多いので、Windowsではなくルータ側で
ダイナミックDNSを設定しても良いですね。

 

WindwosやLinuxでダイナミックDNSを行う場合、24時間いつでもWAN側の
動的IPアドレスが変更したタイミングでダイナミックDNSに通知したい場合、
WindowsPCやLinuxPCを24時間起動していなければならないのが欠点ですね。

 

ルータは基本的には24時間常時起動のため、そういう欠点がありませんね。
例えばNECのブロードバンドルーターであるAtermではBIGLOBEや、
お名前.comのダイナミックDNSが利用できます。このルータでのDDNS設定方法
は、以下のサイトに記載します。

 

 

WindowsでのダイナミックDNS(no-ip)の設定は以下のページに記載しました。
LinuxでDDNSを利用する場合はコマンドベースになるかと思います。

 

 

 

ファイルの送受信方法

スマートフォンから、自宅PCのSSHサーバへファイル送受信する方法です。

 

※AndroidからLinuxへのSCPでのファイル送受信方法は以下のページに記載しました。

 

 

外出先で使用予定のAndroidへES ファイルエクスプローラー(1.5 Cupcake)
ダウンロードしインストールします。

 

左上の「メニュー」→「FTP」を押します。

 

 

 

左下の三本線の「メニュー」→「新規」→「SFTP」を押します。

 

 

 

自宅のSSHサーバの設定を入力し接続します。
その後ファイルの送受信を行います。