11. 必用ではなくなったもの

11.1. 通信系 おまじない(2023 から,いらなくなった(織田先生から))

git コマンドの proxy 設定とは別です. これは,環境丸ごとの話でした.

学内からのアクセスだと proxy の設定をしないとうまく行かないようです.

https://www.cc.uec.ac.jp/ug/ja/network/proxy/index.html

を参考にしてください. ただし学外で操作する場合は,この proxy 環境を切らないと学校に問い合わせに行くので 自分のノートパソコンなどで設定する場合は,意識して切るようにしてください.

使用しているシェルが .bash, の場合は ~/.bash_profile, .zsh の場合は ~/.zshrc などに

export http_proxy=http://proxy.cc.uec.ac.jp:8080/
export https_proxy=http://proxy.cc.uec.ac.jp:8080/
export ftp_proxy=http://proxy.cc.uec.ac.jp:8080/

を記述してください.

使用しているシェルが C-shell 系列の tcsh などの場合は

setenv http_proxy http://proxy.cc.uec.ac.jp:8080/
setenv https_proxy http://proxy.cc.uec.ac.jp:8080/
setenv ftp_proxy http://proxy.cc.uec.ac.jp:8080/

としてください.

11.2. GitHub との SSH 通信

本来であれば,通信環境はこちらを採用すべきなのですが,なぜか学校の環境だと うまく通らないので,こちらのセクションにおいてあります. もし SSH 通信をつかいた場合は参考にしてください.

11.2.1. SSH による通信の設定

Github は,通信において https プロトコルと ssh プロトコルが利用できます. 特にリモートリポジトリにコードをアップロードする (git push する) 場合, https プロトコルだと,常にアカウント名とパスワードを聞かれます. 以前はパスワードを指定できていたので楽だったのですが,上述のようにパスワード認証できなくなり, また,アクセスするために " .netrc というファイルに素のパスフレーズ入れておくのは,ちょっと..." とも思いますので, ssh を使用することを考えてます.

ssh はセキュアシェルと呼ばれるリモート環境とを安全につなぐための技術です. ssh 通信では,開発を行っているホストの信用情報が必要になるので, 開発を行っているホスト(ここでは IED のホスト)の公開鍵を github 側に登録する必要があります.

11.2.2. 使用端末の公開鍵作成

まず, ssh を利用するには,使用端末で SSH の公開鍵を作成する必要があります. GitHub` は,公開鍵暗号としては RSA, DSA, ECDSA, ED25519 などを受け付けますが, 標準の RSA 公開鍵は, 2048 bit長の鍵だと脆弱なので, もっと長い鍵を使うか, ED25519 といった鍵を使いましょう.ここでは ED25519 による登録を行います.

まず Jupyter などで,ターミナルを開いてください. このターミナル上で鍵を生成します. 鍵を生成するには,以下のようなコマンドを投入します.

ssh-keygen -t ed25519 -C 'shouno@uec.ac.jp'

最後の -C オプションの引数は自身のメールアドレスを入れてください.

鍵の生成中に,どこに鍵を置くか(標準は ~/.ssh)と, アクセスするための パスフレーズを聞かれます. 鍵の置き場所は標準のままで,パスフレーズは適当なパスワードを入れてください.

_images/sshkeygen1.png

鍵生成が終われば,ホームディレクトリ (~/) に .ssh フォルダが生成され, そこに秘密鍵ファイル ~/.ssh/id_ed25519 と公開鍵ファイル ~/.ssh/id_ed25519.pub がペアで生成されているはずです. cat コマンドなどで確認することができます.

こちらの公開鍵ファイルの内容を github に登録します.

_images/sshkeygen3.png

11.2.3. Github への SSH 公開鍵の登録

次に公開鍵 ~/.ssh/id_ed25519.pub の内容を github へ登録します.

まず, GitHub に前に設定したアカウントでサインインします. 次に画面右上にあるアイコン(+の隣にある奴) から Setting を選びます.

_images/githubsetting2.png

続いて,左の Personal Settings 欄のなかの "SSH and GPG Keys" を選択します. すると下のようなページに遷移します.

_images/githubsshregister1.png

あとは,"New SSH Key" ボタンを押して,出て来る画面に 先ほどの公開鍵となんらかのタイトルをつければ終了です.

_images/githubsshregister2.png

鍵を登録するとこんな感じになります. ~/.ssh/ed25519.pub を記載し "Add SSH Key" ボタンを押して登録します.

_images/githubsshregister3.png

鍵のタイトルは適当でよいです.

最後にきちんと通信出来るかどうかを確認したければ

ssh -T git@github.com

を実行してみてください.途中,github を知っているホストに登録するか?という 質問と,パスフレーズを聞かれるので,前者は yes 後者は,鍵生成したときの パスフレーズをいれることで,通信が行われます

うまく通信ができていれば

''Hi xxxxxxxx! You've successfully authenticated, but Github ...''

というメッセージを受け取るはずです. これで通信環境が整いました.