gaaamiiのブログ

悪気なく間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

OpenSSH実践入門借りて読んでる

SSHよくわからない」と会社の日報に書いたら、ボルダリングPython好きな先輩が、OpenSSH実践入門を貸してくれた。

OpenSSH[実践]入門 Software Design plus

OpenSSH[実践]入門 Software Design plus

借りパクせずに早めに読み切るためにブログに読んだ内容を書いていく。

1章

  • OpenSSHはOpenBSDの開発チームによって開発されたOSS。手元のMacman ssh ってやると、名前が ssh -- OpenSSH SSH client (remote login program) になっているのでいつも使ってるsshクライアントはこれだったんだなと認識した。
  • プロトコルバージョン1と2がある。
  • どちらのバージョンも、セッション確立の際にホスト認証(クライアント側が接続先のホストが正しいかを確認)とユーザ認証(サーバ側が接続元のクライアントがただしいか確認)を行う。

公開鍵認証について

いまGithub使うときとかに使ってるやつ。使い始めにどういうものか調べたはずなのにしばらくいじらないうちにどういうものか忘れていたので、改めて理解するために下に図を書いておいた。

公開鍵認証の流れ

f:id:shgam:20170903122618p:plain

秘密鍵があればsshできることを確認

理解が曖昧な時は、「ssh-keygen したときに id_rsaとid_rsa.pubってのができたから、id_rsa.pubってのも必要そう」みたいな認識だったけど、上の図のように、ホスト側に登録しておくものなので、接続のときにユーザ側の ~/.ssh に置いておく必要はないはず。そのことを確認しておく。

# .sshに秘密鍵と公開鍵がある状態でgithubへssh接続
~/.ssh$ ls
config      id_rsa      id_rsa.pub  known_hosts
~$ ssh -T git@github.com
Hi gaaamii! You\'ve successfully authenticated, but GitHub does not provide shell access. # 認証に成功した
~/.ssh$ ls
config      id_rsa      id_rsa.pub  known_hosts
# 秘密鍵のファイル名を変えてしまう
~/.ssh$ mv id_rsa private_key
~/.ssh$ ssh -T git@github.com
Permission denied (publickey). # 認証に失敗した

# 秘密鍵のファイル名を戻す
~/.ssh$ mv private_key id_rsa 

# 今度は公開鍵のファイル名を変えてみる
~/.ssh$ mv id_rsa.pub aaaaa.pub 
~/.ssh$ ssh -T git@github.com
Hi gaaamii! You\'ve successfully authenticated, but GitHub does not provide shell access. # 認証に成功した
# 公開鍵がなくても認証された

2章

  • インストールとか設定周りの話。iOSでもSSHクライアント何かしらあるので使えるのを知った。なんか入れとこう
  • 設定は.sshに置いたファイルに書き込むよ的な話
  • sshコマンドの使い方
    • ssh -v [ホスト] とかやると認証方式とか諸々がわかる
    • ssh-keygen -y -f id_rsa とかやると秘密鍵から公開鍵の再生成できる
    • ssh-agent を使うと、中継するサーバに鍵をおかなくても多段SSHができる(ssh-agentの基本 - Qiita を読んで理解)
  • ssh [host] ls みたいな感じでコマンド実行して即ログアウトみたいな使い方もできる
  • scpとかsftpの使い方も紹介されてる。あまり興味ないのでざっくり読み飛ばした。

3章

  • TCPポートフォワーディングの話。
    • 何一つ意味がわからない。そもそもトンネリングってなんなんだ。

4章

TODO

5章

TODO

6章

TODO

7章

TODO

感想

TODO

書き途中です。