Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SSHで快適リモートワーク
Search
koedoyoshida
October 25, 2023
Technology
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SSHで快適リモートワーク
koedoyoshida
October 25, 2023
More Decks by koedoyoshida
See All by koedoyoshida
AlmaLinuxの最新動向と、企業の多種多様なLinux環境を保護する「安心サポート」活用術
koedoyoshida
0
58
AlmaLinux国内、日本語サポートについて
koedoyoshida
0
200
OSC仙台プレ勉強会 AlmaLinuxとは
koedoyoshida
0
320
AlmaLinuxのセキュリティ機能評価と認証~FIPS140 3認証、CC認証 取得への取り組み~
koedoyoshida
0
110
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
1
1.4k
DebConf25参加報告
koedoyoshida
0
64
AlmaLinux Users Meetup 2025 Summer / AlmaLinuxの活動
koedoyoshida
0
210
CentOS後継!業務システムで使えるAlmaLinux for Enterprise
koedoyoshida
0
340
AlmaLinux Users Meetup 2025 Summer / サイバートラストのAlmaLinuxへの取り組み
koedoyoshida
0
220
Other Decks in Technology
See All in Technology
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
200
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
110
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
240
Sigmaで作る業務アプリ
kazushiro_honma
0
120
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
350
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
650
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
330
20260912_スクラムにジェネラリストは必要か
ryugen04
0
370
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
170
20260912_スクフェス三河
kgnkhkr
0
300
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
560
Gitは怖い?共有ワークスペースから始めるSnowflakeチーム開発
coco_se
0
180
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Bash Introduction
62gerente
615
220k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Writing Fast Ruby
sferik
630
63k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
WCS-LA-2024
lcolladotor
0
830
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Transcript
SSHで快適 リモートワーク リモートワーク 吉田
さてみなさんリモートワークしてますか • 会社の仕事を家から • 自宅PC作業をカフェから • 実家のPCメンテナンスを自宅から • などなど •
などなど • 今回紹介する構成 • 外出先PC->クラウド/自宅サーバ>実家/自宅PC
内容 • SSH踏み台設定 • 今まで:最強のSSH踏み台設定 • これから:-J • 温故知新:ワイルドカードマッチ •
温故知新:ワイルドカードマッチ • 自宅、クラウドサーバ活用:autossh • systemd化 • Windowsでの利用
踏み台経由のSSHアクセス • 踏み台(gateway、 bastion、step)経由アクセス • sshサーバを順々にアクセスしてもコンソールでア クセスはできますが... • 直接アクセスできると 踏み台
サーバ 配下のPC(非公 開) sshd sshd/ rdpd/vncd etc • 直接アクセスできると • 手間の削減 • ポートフォワード含めセキュリティを高めた上で、さら に便利に! • 秘密鍵を踏み台に置かなくて済む 作業PC(非公開) ssh client rdp/vnc client
最強のSSH踏み台設定(以前の方法) .ssh/config: # https://qiita.com/kawaz/items/a0151d3aa2b6f9c4b3b8 Host */* ProxyCommand ssh -W "$(basename
"%h")":%p "$(dirname "%h")" #ホスト鍵無条件に受け入れて、ファイルを更新 StrictHostKeyChecking no StrictHostKeyChecking no Host *+* ProxyCommand ssh -W "$(sed -E 's/.*¥+//'<<<"%h")":%p "$(sed -E 's/¥+[^¥+]*//'<<<"%h")" StrictHostKeyChecking no # ssh hoge.com/192.168.x.x #gateway+gatewayから到達できるサーバ # ssh hoge.com+192.168.x.x #gateway/gatewayから到達できるサーバ
これから:-J openssh-7.3 以降 # ssh -J hoge.com 192.168.x.x Configなしでやれる! 参考:
参考: https://qiita.com/kawaz/items/a0151d3aa2b6f9c4b3b8
温故知新:ワイルドカードマッチ .ssh/config: Host desk01* HostName 192.168.x.x Host desk02* HostName 192.168.x.x
ProxyCommand=ssh -W %h:%p sshgateway Match originalhost *-ofwd Match originalhost *-ofwd dynamicForward 8080 LocalForward 65422 localhost:22 $ ssh desk01-ofwd #直接接続 $ ssh desk02-ofwd #外部接続、shellscript 等で順番にtryする等でより省力化、高度化 詳細は実用SSH 第二版 P288 多重マッチ
さて • リモート接続用の「SSHのgatewayサーバやVPNサーバなんて (実家や自宅に)準備されてないよ!」 • そんなあなたにautossh • そしてリバースポートフォワード • そしてリバースポートフォワード
リバースポートフォワード • 通常のポートフォワード(-L) • (リモート)サーバのポートを(ローカル)マシンに(sshを転送路として使 用して)持ってくる • 例えば、サーバのxrdpやVNCポート(外に公開していない)をローカル マシンに持ってきて、使用する マシンに持ってきて、使用する
• リバースポートフォワード(-R) • (ローカル)マシンのポートを(リモート)サーバに持って行く • 例えば、WindowsPCのVNCやリモートデスクトップポートをサーバに 持って行って、サーバに接続してローカルマシンを操作する
そんなあなたにautossh • autosshとは • sshクライアントを起動/監視するプログラム • https://packages.debian.org/buster/autossh • リモートのsshサーバに(リバース: -R)ポートフォワード等が可能
• 後述のデフォルト設定はローカルフォワード(-L)なので書き換える • リバースポートフォワードでクラウドサーバをssh踏み台に! クラウドサーバ (グローバルIP) 自宅PC port待受 sshd/rdpd etcへ転送 自宅PC(非公開) 作業PC(非公開) sshd sshd/ rdpd/vncd etc autossh ssh client rdp/vnc client • リバースポートフォワードでクラウドサーバをssh踏み台に! • 使用例 • 実家PC(autossh)から自宅やクラウド上のサーバ(sshd)に接続することによりクラウ ド上実家PCのsshportへ転送するportを作ることができる • sshのみ公開したクラウドサーバを準備できれば、それ以外はNAT下でもOK • セキュリティ • sshdのデフォルトはサーバのlocalloopbackのみ許可(GatewayPorts=no)なので使用 時はクラウドサーバに一旦ssh clientで接続して再度ローカルに接続 (つまり踏み台) • デフォルト(GatewayPorts=no)ではパブリック(0.0.0.0)には公開されない • 御社(ご自宅)のセキュリティ要件はご確認ください! • At your own risk. client
さらにautosshをsystemdでサービス化し てssh接続を安定化 • 自宅PCの(再)起動時に自動でautosshを起動 • https://remoteroom.jp/diary/2019-07-18/ • https://gist.github.com/ttimasdf/ef739670ac5d627981c5695 adf4c8f98 adf4c8f98
• 要両サーバのroot • 相互にssh専用ユーザを作成してポートフォワード専用にする • systemd設定 • autosshの死亡時に自動で再開 • 安定性向上!
構成 • NAT下にある自宅PC • sshdが動いていること(Cygwin等も可) • sshで自宅サーバに接続できること • rootを持っていること(Windowsでも可) クラウドサーバ
(グローバルIP) 実家PC sshdport へ転送 自宅PC(非公開) 作業PC(非公開) sshd sshd autossh ssh client rootを持っていること(Windowsでも可) • インターネットからsshアクセス出来る自宅サーバやクラウド 上のサーバ • sshdが動いていること • rootを持っていること • クラウドサーバにアクセス出来る作業用PC • sshクライアントが動いていること
手順(全てLinuxの場合) • systemdひな形取得 • curl -sSL https://gist.githubusercontent.com/ttimasdf/ef739670ac5d627981c5695adf4c8f98/raw/autossh@host1 | ¥ •
sudo tee /etc/default/autossh@example • curl -sSL https://gist.githubusercontent.com/ttimasdf/ef739670ac5d627981c5695adf4c8f98/raw/
[email protected]
| ¥ • sudo tee /etc/systemd/system/
[email protected]
• 専用ユーザ作成(クラウドサーバ、実家PC両方)、公開鍵作成、ssh接続 • sudo useradd -g nogroup -s /bin/false -m tunnel • sudo -u tunnel mkdir -p ~tunnel/.ssh • sudo -u tunnel nano ~tunnel/.ssh/config • sudo -u tunnel ssh remote.example.com #クラウドサーバ クラウドサーバ (グローバルIP) 自宅PC 自宅PC(非公開) sshd sshd autossh -R • sudo -u tunnel ssh remote.example.com #クラウドサーバ • (設定ファイル名変更:オプション) • cp /etc/default/autossh@example /etc/default/autossh@hoge • 設定変更 • sudo nano /etc/default/autossh@example • /etc/default/autossh@example内の次の2行を編集する • TARGET_HOST=remote.example.com • 接続サーバ(自宅サーバ) • FORWARDS=-R 10022:127.0.0.1:22 • -Rオプション:リバースポートフォワード 、10022(任意:クラウドサーバ側の空ポート番号)、22(自宅PCでの既存sshポート番号) • 接続 • sudo systemctl start
[email protected]
• 永続化 • sudo systemctl enable
[email protected]
自宅PC sshdport へ転送 作業PC(非公開) sshd ssh client -L
手順(自宅Windowsの場合) • クラウドサーバ上にsshd,ユーザ準備 • 自宅WinPCにssh/autossh(Cygwin)を導入 • パッケージ有り • Autosshでクラウドサーバ上にリモートデスクトップポートを リバースフォワード(-R)
• 同サービス化して自動起動 クラウドサーバ (グローバルIP) 自宅PC sshdport へ転送 自宅Win(非公開) 作業PC(非公開) sshd リモート デスクトップ サービス Cygwin autossh ssh client -R -L • 同サービス化して自動起動 • Cygrunsrv –I AutoSSH –p /usr/bin/autossh –a “-M 20000 -R localaddress:port:serveraddress:port
[email protected]
” -e AUTOSSH_NTSERVICE=yes • 作業PCからssh接続でリモートデスクトップをポートフォワー ド(-L) • リモートデスクトップでローカルポート接続で実家WinPCに接 続 リモート デスクトップ -L
参考URL • 参考URL • 最強のSSH踏み台設定 • https://qiita.com/kawaz/items/a0151d3aa2b6f9c4b3b8 • autossh&systemd •
autossh&systemd • https://remoteroom.jp/diary/2019-07-18/ • https://gist.github.com/ttimasdf/ef739670ac5d627981c5695adf4c8f 98 • Creating persistent SSH tunnels in Windows using autossh • https://blog.dhampir.no/content/creating-persistent-ssh-tunnels- in-windows-using-autossh