<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
		<id>https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?action=history&amp;feed=atom&amp;title=ssh%E5%82%99%E5%BF%98%E9%8C%B2</id>
		<title>ssh備忘録 - 変更履歴</title>
		<link rel="self" type="application/atom+xml" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?action=history&amp;feed=atom&amp;title=ssh%E5%82%99%E5%BF%98%E9%8C%B2"/>
		<link rel="alternate" type="text/html" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=ssh%E5%82%99%E5%BF%98%E9%8C%B2&amp;action=history"/>
		<updated>2026-06-17T12:45:52Z</updated>
		<subtitle>このウィキのこのページに関する変更履歴</subtitle>
		<generator>MediaWiki 1.23.6</generator>

	<entry>
		<id>https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=ssh%E5%82%99%E5%BF%98%E9%8C%B2&amp;diff=16782&amp;oldid=prev</id>
		<title>Kttn: ページの作成:「クライオ電顕備忘録に属する記事です。  == ローカルポートフォワード == ローカルマシンの特定のポートを、sshプロトコル...」</title>
		<link rel="alternate" type="text/html" href="https://www.yasunaga-lab.bio.kyutech.ac.jp/EosJ/index.php?title=ssh%E5%82%99%E5%BF%98%E9%8C%B2&amp;diff=16782&amp;oldid=prev"/>
				<updated>2019-09-20T04:06:42Z</updated>
		
		<summary type="html">&lt;p&gt;ページの作成:「&lt;a href=&quot;/EosJ/index.php/%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%AA%E9%9B%BB%E9%A1%95%E5%82%99%E5%BF%98%E9%8C%B2&quot; title=&quot;クライオ電顕備忘録&quot;&gt;クライオ電顕備忘録&lt;/a&gt;に属する記事です。  == ローカルポートフォワード == ローカルマシンの特定のポートを、sshプロトコル...」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[クライオ電顕備忘録]]に属する記事です。&lt;br /&gt;
&lt;br /&gt;
== ローカルポートフォワード ==&lt;br /&gt;
ローカルマシンの特定のポートを、sshプロトコルを用いて特定のIPアドレスの特定のポートへ繋げる手段。sshを介してリモートへの通路を作るという意味で、「(ssh)トンネルを掘る」とか言われたりする。&lt;br /&gt;
&lt;br /&gt;
コマンドは以下。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; ssh -fNL &amp;lt;Local port&amp;gt;:&amp;lt;Target address&amp;gt;:&amp;lt;Target port&amp;gt; &amp;lt;Remote machine user&amp;gt;@&amp;lt;Remote machine&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Local port&amp;gt;は、ローカルマシンで繋げたいポート番号。&amp;lt;Remote machine user&amp;gt;は、ssh接続先のリモートマシンにおけるユーザー名、&amp;lt;Remote machine&amp;gt;はssh接続先のリモートマシンのIPアドレス(DNSが有効な場合は、ホスト名)。&amp;lt;Target address&amp;gt;は接続先のマシンのIPアドレスだが、これは&amp;lt;Remote machine&amp;gt;から見たときのIPアドレスを意味する。&amp;lt;Target port&amp;gt;は&amp;lt;Target address&amp;gt;のどのポートに繋げるかを指定する。例えば8888:localhost:8888と指定すれば、&amp;lt;Remote machine&amp;gt;から見てlocalhostは&amp;lt;Remote machine&amp;gt;自身のことなので、つまりローカルの8888番ポートを&amp;lt;Remote machine&amp;gt;の8888番ポートへ接続することを意味する。あるいは20020:192.168.4.9:22と指定すれば、ローカルの20020番ポートを&amp;lt;Remote machine&amp;gt;から見てIPアドレス192.168.4.9のマシンの22番ポートへ接続することを意味する。&lt;br /&gt;
&lt;br /&gt;
-fはバッググラウンドでの実行を指定、-Nはssh接続したあとに何も実行せずにおくことを指定(普通は端末に繋げてシェル起動するとかする)、-Lはローカルポートフォワードの実行を指定。&lt;br /&gt;
&lt;br /&gt;
sshコンフィグファイル(~/.ssh/config)に書く場合は、例えばまず以下の様にconfigに書き、&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host hoge&lt;br /&gt;
    HostName &amp;lt;Remote machine&amp;gt;&lt;br /&gt;
    LocalForward &amp;lt;Local port&amp;gt; &amp;lt;Target address&amp;gt;:&amp;lt;Target port&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
からの、&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; ssh -fN hoge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
でオッケー。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;例えばこんなことに: リモートのJupyter Notebookを利用する&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
例えばJupyter( https://jupyter.org/ )はデフォルトでは8888番ポートをリッスンしており、これをリモートマシンで立ち上げたとする。リモートマシンの側で8888番ポートをネットワークへ開放すれば、http://&amp;lt;リモートマシンのホスト名&amp;gt;:8888 でJupyterへ接続できはするが、セキュリティ上の懸念が増えるため宜しくないし、ポートの開閉の管理をするのも面倒である。そこでsshローカルポートフォワードを用い、ローカルマシンの8888番ポートをリモートマシンの8888番ポートへsshを介してつなげてあげれば、通信はsshで暗号化されるし、ポート開閉を考える必要も無く、便利である。http:://localhost:8888 へアクセスすればリモートマシンのJupyterへ繋げられる。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;例えばこんなことに: 踏み台サーバー越しで一発アクセス&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
例えばローカルマシン→リモートマシンA(133.6.xx.yy)→リモートマシンB(192.168.4.zz) みたいに、間に少なくとも1台挟まないとリモートへたどり着けない場合がある(外部から研究室のLANに接続する場合に、研究室LANのゲートウェイを突破しないといけない、とか）。わざわざリモートマシンAにsshで入り、それからリモートマシンBにsshで入る、という段取りをしないといけない。&lt;br /&gt;
&lt;br /&gt;
でもこれを一発でできるんですよ。そう、ローカルポートフォワードを使えばね。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; ssh -fNL 20020:192.168.4.zz:22 user@133.6.xx.yy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(userは133.6.xx.yyにおけるユーザー名）&lt;br /&gt;
&lt;br /&gt;
で、&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; ssh user@localhost -p 20020&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
とやれば、一発でリモートマシンBに入ることができる。&lt;br /&gt;
&lt;br /&gt;
このときリモートマシンAのことを踏み台サーバー(Jump server)と呼んだりする。&lt;br /&gt;
&lt;br /&gt;
...こんな説明で伝わるのだろうか？&lt;/div&gt;</summary>
		<author><name>Kttn</name></author>	</entry>

	</feed>