Recommended
PPTX
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
PDF
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PDF
PPTX
BuildKitによる高速でセキュアなイメージビルド
PDF
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
PDF
Dockerイメージの理解とコンテナのライフサイクル
PDF
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
PPTX
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
PDF
PDF
PDF
Dockerfileを改善するためのBest Practice 2019年版
PDF
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
PPTX
PDF
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
PDF
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
PDF
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PDF
ストリーム処理を支えるキューイングシステムの選び方
PDF
PDF
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
PDF
PDF
IT Automation with Ansible
PPT
PDF
見やすいプレゼン資料の作り方 - リニューアル増量版
More Related Content
PPTX
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
PDF
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PDF
PPTX
BuildKitによる高速でセキュアなイメージビルド
PDF
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
PDF
Dockerイメージの理解とコンテナのライフサイクル
PDF
What's hot
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
PPTX
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
PDF
PDF
PDF
Dockerfileを改善するためのBest Practice 2019年版
PDF
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
PPTX
PDF
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
PDF
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
PDF
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PDF
ストリーム処理を支えるキューイングシステムの選び方
PDF
PDF
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
PDF
PDF
IT Automation with Ansible
Viewers also liked
PPT
PDF
見やすいプレゼン資料の作り方 - リニューアル増量版
PDF
PDF
Macユーザーに贈る!OmniOSで作るお手軽・カンタン・高性能なZFS-NAS!
PPTX
PPT
PDF
PDF
2012 OSC Kyoto / 2012 OSC Tokyo Fall - OpenStack vps kvm
PDF
PPT
Performance and Scalability of Web Service
PPT
Puppet Best Practices? at COOKPAD
PPTX
PDF
第二回Bitvisor読書会 前半 Intel-VT について
PPTX
PPTX
CloudWatch Eventsを使ったECSのAutoScaling
PPT
Parsing Left Recursive PEG
KEY
PDF
Shibuya.trac 2009新年会 - とある会社でのTrac利用事例
PDF
PPTX
Similar to SSH力をつけよう
ODP
PDF
SSHパケットの復号ツールを作ろう_v1(Decrypt SSH .pcap File)
PDF
PDF
ODP
tcpdumpとtcpreplayとtcprewriteと他。
KEY
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
PDF
ODP
OpenSSH User EnumerationTime-Based Attack と Python-paramiko
PPTX
PDF
How to apt-get from the internal network: remote sshd with kneesocks
PDF
このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会
PDF
振る舞いに基づくSSHブルートフォースアタック対策
PDF
マルチプラットホームになった PowerShell 6 でクロスプラットホームする
PDF
PDF
PDF
PDF
Docker hands on nifty sakura jul19
PDF
Rios::Proxy - A framework for CLI
PPT
PPTX
More from (^-^) togakushi
PDF
PDF
ODP
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
PPT
Recently uploaded
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
SSH力をつけよう 1. 2. 3. 4. 5. RFC
RFC 4250 The Secure Shell (SSH) Protocol Assigned Numbers
RFC 4251 The Secure Shell (SSH) Protocol Architecture
RFC 4252 The Secure Shell (SSH) Authentication Protocol
RFC 4253 The Secure Shell (SSH) Transport Layer Protocol
RFC 4254 The Secure Shell (SSH) Connection Protocol
RFC 4255 Using DNS to Securely Publish Secure Shell (SSH) Key
Fingerprints
RFC 4256 Generic Message Exchange Authentication for the Secure
Shell Protocol (SSH)
RFC1928 : SOCKS Protocol Version 5
5 / 62
6. RFC(続き)
RFC 4335 The Secure Shell (SSH) Session Channel Break Extension
RFC 4344 The Secure Shell (SSH) Transport Layer Encryption Modes
RFC 4345 Improved Arcfour Modes for the Secure Shell (SSH)
Transport Layer Protocol
RFC 4419 Diffie-Hellman Group Exchange for the Secure Shell (SSH)
Transport Layer Protocol
RFC 4432 RSA Key Exchange for the Secure Shell (SSH) Transport
Layer Protocol
RFC 4462 Generic Security Service Application Program Interface
(GSS-API) Authentication and Key Exchange for the Secure
Shell (SSH) Protocol
RFC 4716 The Secure Shell (SSH) Public Key File Format
RFC 5656 Elliptic Curve Algorithm Integration in the Secure Shell
Transport Layer
6 / 62
7. 認証方式
► 公開鍵認証
► パスワード認証
► ホストベース認証
► などなど
% ssh –v hoge
:
debug1: Authentications that can continue: publickey,password
debug1:
debug1: Next authentication method: publickey
debug1:
:
他にもたくさん!
7 / 62
8. 関連ファイル(クライアント)
► 設定ファイル
~/.ssh/config
/etc/ssh/ssh_config
► ホスト公開鍵の保存ファイル
~/.ssh/known_hosts
/etc/ssh/ssh_known_hosts
► ログイン後に実行するファイル
~/.ssh/rc
/etc/ssh/sshrc
他にもたくさん!
8 / 62
9. 関連ファイル(サーバ)
► 設定ファイル
/etc/ssh/sshd_config
► ログインユーザの公開鍵
~/.ssh/authorized_keys
► お知らせ
/etc/motd
► メンテナンス用
/etc/nologin (root以外のログインを拒否)
他にもたくさん!
9 / 62
10. 11. 12. 13. 14. 15. 利用シーン
► リモートデスクトップしたい!!
ssh –L 3389:windows:3389 ssh-gateway
rdesktop localhost
インター 踏み台
作業端末 Windowsサーバ
ネット SSH-GATEWAY
リモートデスクトップ
tsclient TCP/3389 ssh sshd
(TCP/3389)
15 / 62
16. 17. 利用シーン
► 無理やりログを転送したい!
ssh –g –R 1512:syslog-server:512 ssh-gateway
踏み台 サーバ
SSH-GATEWAY
サーバ 作業端末 syslogd
TCP/1512
syslogd ssh
サーバ
sshd syslogd
17 / 62
18. ゲートウェイポート
► フォワーディングの機能を使ってオープンした
ポートに対しては「別のホスト」から接続できな
い(デフォルトの動作)
► -g を付けると0.0.0.0でバインドして接続可能に
なる
リモートポートフォワードはサーバで許可する必要
あり
►GatewayPorts=yes/clientspecified
18 / 62
19. 20. エスケープキャラクタ
► エンター直後の「~」
~. 切断
~^Z バックグランドにする
~& バックグランドにする
(通信がなくなるとログアウト)
~# ポートフォワードの情報を表示
~~ ~
~C コマンドラインを開く
~? ヘルプ
20 / 62
21. ~C
► ログインしたままポートフォワードの追加ができ
る
ローカル/リモート/ダイナミック
ゲートウェイポートは指定できない(設定値に従う)
► リモートポートフォワードをキャンセルできる
OpenSSH-6.0ですべてキャンセル可能になった
► クライアントでコマンドが実行できる
► 「help」って打ったらヘルプが出る
21 / 62
22. 23. 24. 多段ssh
► ダイナミックポートフォワード経由
ncでプロキシを指定してトンネル
クライアントにncが必要
ssh –D 1080 <ssh-gateway>
ssh –oProxyCommand=‘nc –x localhost:1080’ <target-host>
► 踏み台からncを実行して繋ぐ
踏み台にncが必要
ssh –oProxyCommand=‘ssh <ssh-gateway> nc %h %p’ <target-
host>
24 / 62
25. netcat mode
► OpenSSH-5.4で実装(-Wオプション)
CentOS6は5.3ベース
-W <転送先ホスト>:<転送先ポート> 経由ホスト
ssh –oProxyCommand=‘ssh –W %h:%p <ssh-gateway>’ <target-
host>
踏み台がnetcat modeをサポートしてる必要なし
踏み台にログインできる必要なし(認証のみ必要)
25 / 62
26. 超多段
ユーザ名:login-a
ポート:12345
クライアント HOST-A
公開鍵:KeyA
秘密鍵は HOST-A HOST-B
ユーザ名:login-d
全部ココ!
ポート:60022
公開鍵:KeyD
ユーザ名:login-b HOST-B HOST-C
ポート:10022
公開鍵:KeyB
ユーザ名:login-c HOST-C HOST-D
ポート:22
公開鍵:KeyC
26 / 62
27. どうする?がんばる?
ssh –oProxyCommand=’ssh –
oProxyCommand=¥’ssh –
oProxyCommand=¥¥¥’………¥¥¥’ ………
–W %h:%p –i KeyA login-a@HOST-A’
-i KeyD login-d@HOST-D
► 四段ProxyCommandを重ねればOK
► ポートやログイン名、鍵の指定を忘れずに
ポートやログイン名 指定を
► クォートのエスケープが必要
27 / 62
28. ~/.ssh/config
Host HOST-A Host HOST-C
User login-a User login-c
Port 12345 IdentityFile KeyC
IdentityFile KeyA ProxyCommand ssh –
W %h:%p HOST-B
Host HOST-B
User login-b Host HOST-D
Port 10022 User login-d
IdentityFile KeyB Port 60022
ProxyCommand ssh – IdentityFile KeyD
W %h:%p HOST-A ProxyCommand ssh –
W %h:%p HOST-C
28 / 62
29. 内容
「Host HOST-A」で定義
クライアント HOST-A
「Host HOST-B」で定義
HOST-A HOST-B
「Host HOST-C」で定義HOST-B HOST-C
「Host HOST-D」で定義 HOST-C HOST-D
29 / 62
30. 一撃!!
ユーザ名:login-a
ポート:12345
クライアント HOST-A
公開鍵:KeyA
秘密鍵は HOST-A ssh HOST-B
HO ユーザ名:login-d
全部ココ!
ST
-D
ポート:60022
公開鍵:KeyD
ユーザ名:login-b HOST-B HOST-C
ポート:10022
公開鍵:KeyB
ユーザ名:login-c HOST-C HOST-D
ポート:22
公開鍵:KeyC
30 / 62
31. scpも!!
ユーザ名:login-a
ポート:12345
クライアント HOST-A
公開鍵:KeyA
HOST-A
秘密鍵は scp HOST-B ユーザ名:login-d
全部ココ! HO
ST ポート:60022
-D 公開鍵:KeyD
:fil HOST-C
ユーザ名:login-b HOST-B e.
ポート:10022
公開鍵:KeyB
ユーザ名:login-c HOST-C HOST-D
ポート:22
公開鍵:KeyC
31 / 62
32. 33. ssh-agent
► 秘密鍵を一時的に覚えさせることができる
► 複数の鍵の登録が可能
► パスフレーズはagentに登録するときだけ尋ねられる
► 接続時に適切な鍵を自動的に選択
► エージェントを使わせたいプロセスをエージェント配下
に置く形で起動
% ssh-agent bash
% ssh-add .ssh/id_rsa
注意:引数なしでssh-agentを立ち上げるとバックグラウンドで実行されるだけ
で何も起こらない(プロセスはkillしないと残り続ける)
33 / 62
34. 35. 36. 簡易VPN
► -wでtun/tapをsshでトンネルできる
OpenSSH-4.3で実装
クライアントのrootユーザがサーバに対してrootと
してログインできることが条件
サーバ側で設定(許可)が必要
►PermitTunnel=yes/point-to-point/ethernet
36 / 62
37. 利用シーン
► インターネットに繋がってない環境のホストを
アップデートする
# ifconfig tap0 192.168.254.2
/proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv4/ip_forward
インター # iptables –t nat -A POSTROUTING –o tap0 –j MASQUERADE
ネット DefaultGW=192.168.254.1
DefaultGW=192.168.254.1
yum update したい!
したい!
作業端末 踏み台 HOST-A
oTunnel= ssh-
# ssh –w0:0 –oTunnel=ethernet ssh-gateway DefaultGW=
DefaultGW=踏み台のeth0
# ifconfig tap0 192.168.254.1 Nameserver=作業端末から
Nameserver=作業端末から見
から見
# echo 1 > /proc/sys/net/ipv4/ip_forward
/proc/sys/net/ipv4/ip_forward えるDNS
えるDNS
37 / 62
38. 39. -3
► OpenSSH-5.7で実装
HOST-A HOST-B HOST-A HOST-B
file file file file
作業端末 作業端末
% scp HOST-A:file HOST-B: % scp -3 HOST-A:file HOST-B:
HOST-AからHOST-Bに接続する
鍵交換はしてくれないので事前に済ませておく
39 / 62
40. 41. 42. 43. 44. sshの接続が遅い
► 認証が始まるまでが遅い→名前解決できてま
すか?
/etc/hostsをちゃんと設定する
UseDNSをnoにしてみる
► ログインが遅い→認証メソッドの見直しを
GSSAPIAuthenticationを無効にしてみる
クライアント側で認証メソッドの順番、選択が出来る
►-oPreferredAuthentications=publickey,password
►-oGSSAPIAuthentication=no
44 / 62
45. うまく繋がらない
► 保存してるホストの公開鍵が一致しない
意図的に再生成した(再インストール)/IPアドレスが
変わった/乗っ取られた
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX.
Please contact your system administrator.
Add correct host key in /home/username/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/username/.ssh/known_hosts:20
remove with: ssh-keygen -f "/home/username/.ssh/known_hosts" -R XXXXXXXX
45 / 62
46. sshはちゃんと繋がるのに
scpだけが失敗する
► シェルの初期化ファイル(.profile, .*rcとか)が
何か出力してると失敗する
scpはファイルの受け渡しに標準入出力を利用して
いる
► 接続先にもscpが必要(PATH通ってますか?)
► どーしても何か設定したい人
scpのセッションはTERMがdumbなのでなんとかし
て
46 / 62
47. 48. sshdを再起動したら
セッション切れますか?
► 切れません
最初に起動するデーモン(再起動対象)
※落ちても通信中のセッションは切れない
pstree(抜粋)
pstree(抜粋)
├─sshd,682
├─sshd,682
セッション管理用(落ちると切れる)
└─sshd,2728
│ └─sshd,2728
│ └─sshd,2869
└─sshd,2869
│ └─zsh,2870
└─zsh,2870
通信してるプロセス(特権分離によりユーザ権限で実行)
48 / 62
49. sshd_configを編集したんだけど、
内容が正しいか検証したい
► ポートを変えて新しく作った設定ファイルを指定
して新しくデーモンを起動させてテストする
new_sshd_config
# /usr/sbin/sshd -f new_sshd_config -p 10022 –D
•コマンドラインのオプションは設定ファイルより優先される
コマンドラインのオプションは設定ファイルより優先される
コマンドライン ファイルより優先
•-Dでデーモンとして起動させない(Ctrl+Cで止めれる)
- デーモンとして起動させない Ctrl+Cで めれる)
として起動させない(
•必要に応じてデバッグオプション(-d~-ddd)を付ける
必要に じてデバッグオプション
必要 デバッグオプション( ddd)
•秘密鍵は読める場所に準備する
秘密鍵は める場所 準備する
秘密鍵 場所に
49 / 62
50. 51. 52. 53. sshにまつわる攻撃
► MITM攻撃
鍵のフィンガープリント見てますか?
あなたがログインしようとしているホストは本物です
か?
Client 第三者 Server
ドメインの詐称やarp poisoningなどによるなりすまし
► パスワード認証に対しての総当り攻撃
53 / 62
54. 55. known_hostsのハッシュ化
► 接続済みサーバの公開鍵を保存するファイル
ホスト名、IPアドレスが書いてある
このホストから次に接続したホストの一覧
► ssh-keygen –H –f ~/.ssh/known_hosts
OpenSSH-4.0で実装
HashKnownHosts=yesでハッシュ化してから追加
ハッシュ化してから追加
ホストを探すときは「-F ホスト名[:ポート]」
ホストを すときは「 ホスト名
削除するときは「-R ホスト名[:ポート] 」
削除するときは
するときは「 ホスト名
55 / 62
56. 57. バージョンに注意
► よく新しい機能(Features)が追加されるのでリ
リースノートは読むべし
► 使う環境によって使えないオプションがある
CentOS5 → OpenSSH-4.3
CentOS6 → OpenSSH-5.3
Fedora16 → OpenSSH-5.8
MacOS → OpenSSH-5.6
Ubuntu12.04 → OpenSSH-5.9
► ssh –Vで確認
57 / 62
58. 自前でコンパイルするなら
► コンパイルオプションに注意
○○をサポートする/しないが大量に選べる
OpenSSH has been configured with the following options:
PAM support: no
OSF SIA support: no
KerberosV support: no
SELinux support: no
Smartcard support:
S/KEY support: no
TCP Wrappers support: no
MD5 password support: no
libedit support: no
Solaris process contract support: no
Solaris project support: no
BSD Auth support: no
58 / 62
59. 運用方法の再考
► sshが保護してくれるのは通信経路だけ!
アカウント/パスワード/鍵の運用方法を間違うとす
べてが台無しに
► FWの意味がなくなる!
TCP/22(ssh)以外拒否してるから安心なの?
ネットワークの利用規約はよく読んで
► 踏み台を運用している人は設定の見直しを!
その設定は本当に必要ですか?
デフォルト値は把握しておくべき
59 / 62
60. 61. 参考資料
► man ssh
► man ssh_config
► man ssh-keygen
► http://www.openssh.org/
61 / 62
62.