カテゴリー
アプリ

Git for Windows と ssh を使ってリポジトリへ接続する方法

Windows 環境下での ssh の設定には Linux のものとは多少異なる操作があります。忘れた時の為にこの記事を残すことにしました。

自分しか使わない前提の GitLab サーバを構築(自己証明書で運用)しましたが、アップデートを重ねていくうちに git pull/push 時に次の警告が出るようになってしまいました。

warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.

これは次のコマンドが実行され、サーバー証明書のチェックを回避する設定が選択されている場合に表示されます。

git config --global http.sslverify true

因みに http.sslverify false が設定されている場合だと、次のエラーが発生して git pull/push 操作自体に失敗します。

fatal: unable to access 'https://接続先/オーナー名/リポジトリ名.git/': SSL certificate problem: self signed certificate

この時、リモート・リポジトリの設定は次のようなものでした。https で始まる点に注目して下さい。

git remote -v
origin https://接続先/オーナー名/リポジトリ名.git (fetch)
origin https://接続先/オーナー名/リポジトリ名.git (push)

Git リポジトリへの接続には ssh を使うやり方も選べるので切り替えることにしました。それにより、目障りな警告メッセージを見なくて済むようになる事を目論んだからです。

まずは ssh-keygen コマンドを使って公開鍵とプライベート鍵のペアを作ります。作り方は簡単にググれるので省きます。鍵のファイル名はそれぞれ id_rsa.pub と id_rsa とします。

公開鍵(id_rsa.pub)の方を GitLab の PreferencesSSH 鍵の画面で登録します。

次に、ユーザのホームディレクトリ下に .ssh というフォルダを作成します。PowerShell を表示させて次のコマンドを入力します。

mkdir ${env:UserProfile}/.ssh

上記のコマンドで作成された ${env:UserProfile}/.ssh というフォルダの下に config というファイルを作成します。中身は次の内容とします。

Host エリアス
    HostName ホスト名.ドメイン名
    User git
    IdentityFile ~/.ssh/id_rsa
    Port ポート番号
    TCPKeepAlive yes
    IdentitiesOnly yes

ssh では通常ポート番号 22 を使いますが、Docker コンテナとして GitLab を運用する場合は、publish スイッチを伴う docker run コマンドを使い、ホスト側の22番との競合を回避させるのが通例です。上記の設定例にあるポート番号は回避させる為に与えた番号を記述します。

config ファイルを作成したら、同じフォルダへ公開鍵とプライベート鍵を保存します。

続いて、所有者以外に書き換えられないようアクセス権を剥奪します。Linux の場合だと chmod 700 を実行する操作に該当します。

icacls $env:UserProfile/.ssh/config /inheritance:r
icacls $env:UserProfile/.ssh/config /grant "${env:UserDomain}\${env:UserName}:F"
icacls $env:UserProfile/.ssh/id_rsa /inheritance:r
icacls $env:UserProfile/.ssh/id_rsa /grant "${env:UserDomain}\${env:UserName}:F"
icacls $env:UserProfile/.ssh/id_rsa.pub /inheritance:r
icacls $env:UserProfile/.ssh/id_rsa.pub /grant "${env:UserDomain}\${env:UserName}:F"

フォルダのアクセス権も同様に剥奪します。

icacls $env:UserProfile/.ssh /inheritance:r
icacls $env:UserProfile/.ssh /grant "${env:UserDomain}\${env:UserName}:F"

ssh を使ってGitLabサーバーへアクセスできるか確認します。’v’ オプションはデバッグ用で、接続障害が発生した時に役立つ診断情報を画面に表示させることが出来ます。

ssh -v エリアス

接続を無事確認することが出来たら、このエリアスを使ってgit の構成を変更します。

git remote set-url origin git@エリアス:オーナー名/リポジトリ名.git

もはや https 接続を使いませんので不要な設定を取り除きます。

git config --global --unset http.sslverify
git config --global --unset http.sslcainfo

あとは、git pull コマンドなどを実行して問題が無いことを確認します。

カテゴリー
アプリ

最新 Firefox へ切り替える方法

Check your F.F. whether or not latest release.

Extract files and deploy.

WKDIR=/tmp
# Finds latest version string and stores into the shell variable.
wget -qO - "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=ja" | tar jxf - -C $WKDIR
[ -e /opt/firefox/ ] && sudo rm -rf /opt/firefox
sudo mv $WKDIR/firefox /opt/
sudo chown -R root:root /opt/firefox
sudo find $WKDIR -name "firefox-*.tar.bz2" -exec rm {} \;

Should be done at once following them if you installed OS newly.

  • Remove package of the old version.
    sudo yum -y remove firefox
    
  • Allocate a new symbolic link for the new firefox.
    [ -L /usr/bin/firefox ] || sudo ln -s /opt/firefox/firefox /usr/bin/firefox
    
  • New icon is here:
    /opt/firefox/browser/chrome/icons/default/default128.png
    

Create a desktop menu item

  • Create a launcher configuration file.
    sudo vim /usr/share/applications/firefox.desktop
    
  • Put the following entries.
    [Desktop Entry]
    Encoding=UTF-8
    Name=Firefox
    Comment=Firefox
    Exec=/usr/bin/firefox
    Icon=/opt/firefox/browser/chrome/icons/default/default128.png
    Categories=Application;Network;WebBrowser
    Version=4.2
    Type=Application
    Terminal=0
    
  • You can refer to a article “Desktop Menu Specification”.

Trouble shooting

Gtk-Message: Failed to load module “pk-gtk-module”
sudo yum -y install PackageKit-gtk3-module
firefox は現在既定のブラウザに設定されていません。既定のブラウザに設定しますか
  • [メニュー]-[設定]-[お気に入りのアプリケーション]-[ウエブブラウザ]
  • /usr/bin/firefox を入力
カテゴリー
日記的な記事 未分類

通学定期の継続(JR東日本)

  • 2019年3月31日(日)、あとひと月で平成も終わりか…
  • セガレの通学定期が継続可能期間になった
  • クレジットカード機能付きView Suicaカードで定期を買うとJRE POINT が貯められるので支払いに使うことに決めた
  • カードは本人じゃないと使えないので自分で買いに行くことにした
  • 最寄り駅の券売機へ定期を差し込み手続きを試みたところ「お取扱いできません」と表示されたので千葉駅のみどりの窓口へ向かった
  • 駅員に事情を説明すると「こちらで買えます」と.窓口脇の多機能券売機に案内された
  • 通学証明書の確認を求められたので、セガレから借りてきたそれを見せた
  • 確認が済むと駅員が券売機へ秘密のパスコードを入力した
  • すると「通学定期継続が買える」モードに切り替わり、後は普通の定期と同じ操作で買えた