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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
koedoyoshida
October 25, 2023
Technology
500
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
70
AlmaLinux国内、日本語サポートについて
koedoyoshida
0
220
OSC仙台プレ勉強会 AlmaLinuxとは
koedoyoshida
0
330
AlmaLinuxのセキュリティ機能評価と認証~FIPS140 3認証、CC認証 取得への取り組み~
koedoyoshida
0
120
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
1
1.4k
DebConf25参加報告
koedoyoshida
0
65
AlmaLinux Users Meetup 2025 Summer / AlmaLinuxの活動
koedoyoshida
0
210
CentOS後継!業務システムで使えるAlmaLinux for Enterprise
koedoyoshida
0
360
AlmaLinux Users Meetup 2025 Summer / サイバートラストのAlmaLinuxへの取り組み
koedoyoshida
0
220
Other Decks in Technology
See All in Technology
GitHub Agentic Workflows を触ってみる
htkym
2
850
顧客の成果創出とプロダクトの成長を 両立するためのFDE
sansantech
PRO
0
270
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
230
LT:「このままでいいのかな?」から一歩踏み出した私のデータキャリア選択〜社会人3年目に上京を決意したリアル〜Snowflake女子会 vol.8
snowwmn0824
0
110
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
ScotSecure West 2026 - Glasgow
raybugg
0
200
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
1
260
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
1
390
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
200
AIは推し活である。
kurazuuuuuu
2
1k
Goodbye ShellScript, Hello File-based App
shunsock
0
1.3k
AWS App Runnerから Cloudflare Workersへ移行した話
ryota09
0
110
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.1k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
270
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
710
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
We Are The Robots
honzajavorek
0
380
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
560
Producing Creativity
orderedlist
PRO
348
41k
How to Ace a Technical Interview
jacobian
280
24k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
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