タグ: ssh

GitHubに登録しているSSH公開鍵のURL

https://github.com/settings/keys に登録しているSSH Keysは

https://github.com/USERNAME.keys で取得できる

$ wget https://github.com/USERNAME.keys
$ cat USERNAME.keys
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....

都度保存しているテキストファイルからauthorized_keys転記していたので地味に助かりました。

参考

GitHubに登録してある公開鍵をauthorized_keysに追加するコマンド – Qiita

広告

Ubuntu 14.04でSSHログイン時のメッセージをカスタマイズ

UbuntuにSSHでログインした際、

Using username "vagrant".
Authenticating with public key "imported-openssh-key" from agent
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-55-generic x86_64)

* Documentation:  https://help.ubuntu.com/

  System information as of Fri Jul 17 15:30:29 JST 2015

  System load:  0.0               Users logged in:        1
  Usage of /:   5.1% of 39.34GB   IP address for eth0:    10.0.2.15
  Memory usage: 4%                IP address for eth1:    192.168.33.10
  Swap usage:   0%                IP address for docker0: 172.17.42.1
  Processes:    118

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud


*** System restart required ***

のような文字列が表示されます。この文字列をmotd(message of the day)といい、
Ubuntu14.04ではSSHログイン時にPAMを使用している場合、/etc/pam.d/sshdの中で、pam_motdモジュールを使用して、/run/motd.dynamicファイルに書かれているものを出力しています。

/run/motd.dynamicはプログラムによって生成されており、元となるデータは/etc/update-motd.dディレクトリに数字_ファイル名というスクリプトファイルで存在しています。数字順に実行していき、標準出力された文字列を/run/motd.dynamicに出力しています。

カスタマイズ例

  1. スクリプトファイルを作成
    #!/bin/bash
    
    echo "custom message"
    
  2. /etc/update-motd.d内に設置
    /etc/update-motd.d/99-hogehoge
    
  3. 実行権限付与
    sudo chmod +x /etc/update-motd.d/99-hogehoge
    
  4. /run/motd.dynamicを更新
    sudo sh -c "run-parts --lsbsysinit /etc/update-motd.d > /run/motd.dynamic"
    
  5. SSHで新しくログイン
    Using username "vagrant".
    Authenticating with public key "imported-openssh-key" from agent
    Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-55-generic x86_64)
    
    * Documentation:  https://help.ubuntu.com/
    
      System information as of Fri Jul 17 15:49:35 JST 2015
    
      System load:  0.19              Users logged in:        1
      Usage of /:   5.3% of 39.34GB   IP address for eth0:    10.0.2.15
      Memory usage: 5%                IP address for eth1:    192.168.33.10
      Swap usage:   0%                IP address for docker0: 172.17.42.1
      Processes:    111
    
      Graph this data and manage this system at:
        https://landscape.canonical.com/
    
      Get cloud support with Ubuntu Advantage Cloud Guest:
        http://www.ubuntu.com/business/services/cloud
    
    54 packages can be updated.
    29 updates are security updates.
    
    
    *** System restart required ***
    custom message
    

          ↑ファイル名の数字部分を99にしたので、スクリプトで出力したものが一番最後に追加されている。

参考

GitLabで作成したリポジトリに対して、ポート22以外のSSH経由でアクセスできるようにする

セキュリティなどの理由からSSHをポート22以外で動かしているサーバにGitLabをインストールした際、
クライアントからそのGitLabで作成したリポジトリ(git@SERVERNAME:USERNAME/REPOSITORY.git)に対してアクセスできるようにする。

確認事項

  • サーバで稼働しているSSHは22以外で動いている(今回は10022)
  • GitLabはユーザgitで動いている(=リポジトリのユーザ名部分がgit)
  • GitLabに登録したSSHの鍵を使ってgit@SERVERNAMEにポート10022に対してSSHで接続できる
    ※接続すると
    Welcome to GitLab, USERNAME
    Connection to SERVERNAME closed.
    と表示されて切断される
    

方法1 クライアント側のSSHの設定ファイルを編集する

vi ~/.ssh/config

  Host SERVERNAME
  Port 10022
  IdentityFile 秘密鍵のパス

アクセスするリポジトリURLはそのまま

git@SERVERNAME:USERNAME/REPOSITORY.git

方法2 GitLabの設定ファイルを編集しSSHのポート番号を指定する

vi config/gitlab.yml

  ssh_port: 10022

その後、GitLabを再起動

GitLabのプロジェクトページにアクセスすると、リポジトリURLが

ssh://git@SERVERNAME:10022/USERNAME/REPOSITORY.git

と変わっているので、そこに対してアクセスする

参考

puttyの公開鍵をOpenSSH形式に変換する

ユーザからいただいたputtyでつくった公開鍵をサーバ上の.ssh/authorized_keysに登録できるOpenSSH形式に変換するメモ

ssh-keygen -i -f id_rsa_putty.pub > id_rsa.pub

参考:Putty で作成した公開鍵を OpenSSH 形式に変換する – ~fumi/ChangeLog