18
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SSH接続について調べたのでメモ

Last updated at Posted at 2021-04-10

SSHとは

SSHとは?仕組みとSSHサーバーの設定をわかりやすく解説します! | カゴヤのサーバー研究室
初心者がSSHについて学ぶ(´・ω・`) - Qiita
SSHとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
https://e-words.jp/w/ssh.html
TCP/IP - Telnetとは、SSHとは

  • 「Secure Shell(セキュア・シェル)」の略
  • telnet の通信が暗号化できるようになったもの
  • telnet
    • 他のコンピュータを遠隔操作するための仕組み
    • こちらは通信が暗号化されていない。非推奨。
  • SSHには、SSH1 と SSH2 の2種類の通信手段(プロトコル)がある
  • サーバー側で「SSHデーモン」、クライアント側で「SSHクライアント」が起動されている必要がある。
    • sshd (ssh daemon)

      • UNIXのOSで外部からのssh接続を受け付ける常駐プログラム
      • 通信経路の暗号化や利用者の認証、操作コマンドの受信と実行などを行なう
    • sshクライアント

  • 「パスワード認証方式」と「公開鍵認証方式」の2通りがある
    • パスワード認証方式
      • 接続先のサーバーで作成した、ユーザー名とパスワードを利用する
      • パスワードが流出したら誰でも接続できてしまう
    • 公開鍵認証方式
      • ローカルで作成した、公開鍵と秘密鍵を利用する
      • 公開鍵を接続先のサーバーに登録する
      • 対応する秘密鍵を持っているクライアントだけが接続できる

ssh/.config とは

~/.ssh/configについて - Qiita
.ssh/configファイルでSSH接続を管理する - Qiita

  • sshの設定ファイル
  • ssh/.configに設定を記載しておくと長いコマンドをいちいち打たなくてもいい

gitHubにアクセスするときにも使ったりする

Mac GitHub SSH接続設定 - Qiita

DokcerでたてたサーバーにSSHで接続してみる

Docker | 公開鍵でコンテナにssh接続する出来るようにするDockerfileの例 - Qiita
この記事を参考にさせてもらってローカルでsshを試してみた
とりあえずコピペで接続できたので、内容を詳しく見てみる

Dockerfileを読んでみる

FROM ubuntu:16.04

# 1
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd

# 2
# ssh設定ファイルの書換え
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config

# 3
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

# 4
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

# 5
# 手元の公開鍵をコピー
COPY id_rsa.pub /root/authorized_keys

# 6
# ssh用の port を晒す
EXPOSE 22

# 7
# 公開鍵を使えるようにする (パーミッション変更など)
CMD mkdir ~/.ssh && \
    mv ~/authorized_keys ~/.ssh/authorized_keys && \
    chmod 0600 ~/.ssh/authorized_keys &&  \
    # 最後に ssh を起動
    /usr/sbin/sshd -D
  • #1
    • openssh-serverをインストールしている
      • これがSSHデーモンってことでいいのか?
    • RUN mkdir /var/run/sshd
      これがないとエラーになる。必要なディレクトリってことはわかったけど、なんで必要なのかはわからなかった。
docker run  -p 10000:22 ssh_server
Missing privilege separation directory: /var/run/sshd

SSH デーモン用サービスの Docker 化 — Docker-docs-ja 19.03 ドキュメント
Dockerとは -Dockerの基本的な使い方- - ネットワークエンジニアを目指して

コマンドの意味を調べる

18
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?