公開鍵ファイル作成

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Enter file in which to save the key (/home/you/.ssh/id_rsa): (そのままエンターを押す)
Enter passphrase (empty for no passphrase): (パスフレーズを入力)
Enter same passphrase again: (パスフレーズ確認)

公開鍵ファイルを配置

# su user1
$ cd ~
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ vi ~/.ssh/authorized_keys (公開鍵ファイルの内容を書き込み)
$ chmod 644 ~/.ssh/authorized_keys
$ restorecon -Rv ~/.ssh/

sshd_config

  • /etc/ssh/sshd_config (抜粋)
    #Port 22
    Port 20022 (ポートスキャン対策, 既定から適当な未使用のポートへ変更)
    
    #PermitRootLogin yes
    PermitRootLogin no
    
    #PasswordAuthentication yes
    #PermitEmptyPasswords no
    PasswordAuthentication no
    PermitEmptyPasswords no
    
    #AllowAgentForwarding yes
    AllowAgentForwarding yes
  • sshd を再起動した後、別ターミナルでログイン確認。
    root でログインしているターミナルを終了すると、設定に問題があった場合、修正できなくなるため。
    • CentOS7
      # systemctl restart sshd
    • CentOS6
      # service sshd restart

firewalld

ポートフォワード

  • Windows クライアントのローカルポートに対するアクセスを Linux サーバのリモートポートへ転送する。
  • Win32-OpenSSH のインストール (Chocolatey)
    > cinst -y openssh
  • 設定ファイル %UserProfile%/.ssh/config
    host Host1
      user user1
      hostname host1.domain1
      port 20022
      identityfile ~/.ssh/id_rsa.user1
      LocalForward 5901 host1.domain1:5900
    
    host Host2
      user user2
      hostname host2.domain2
      port 22
      identityfile ~/.ssh/id_rsa.user2
      LocalForward 5902 host2.domain2:5900
  • 接続 (PowerShell 上から)
    > ssh -F "C:\Users\user1\.ssh\config" Host1
  • 切断
    $ exit