SourceTreeにも貢献できる?
SourceTree にも貢献できる?
Atlassian の SourceTree for macOS は一部翻訳されていないので、Atlassian の製品なのに不思議だなと思っていた。 SourceTree をいじっていると、環境設定→一般→Language & Regionに SourceTree への翻訳にご協力ください というリンクがあることに気がついた。
リンク先は https://www.transifex.com/atlassian/sourcetree-for-mac/dashboard/ となっていた。ボランティアとして翻訳ができるもよう。マジか。
Windows に Linux から公開鍵認証方式でsshやscpを実行したい
Window に Linux から公開鍵認証方式でsshやscpを実行したい
Microsoft のOpenSSH が入っているWindows に Linux の OpenSSH から公開鍵認証方式で ssh や scp したい。
Windows の前提
- Windows 10または Windows Server
- 外部からSSH ログインができる
- その際の認証方式はパスワード認証
- 設定を変更するため管理者権限のあるアカウントがある
- 仮でWindows ホスト名は Win-server とする
Windows での作業
1. sshd_configで公開鍵認証方式を有効にする
MicrosoftのドキュメントのWindows Configurations in sshd_config/OpenSSH Server configuration for Windows Server and Windows によると、Windows 用の sshd_config は %programdata%\ssh\sshd_config
(または、C:\ProgramData\ssh\sshd_config
) らしい。
Win-server
に管理者権限でログインして、このファイルを編集する必要がある。該当ファイルを別のフォルダにコピーして、ファイルを編集しそのファイルを元のフォルダに戻すとよい。
なお編集は次の箇所のコメントを外すだけである。
#PubkeyAuthentication yes
次のようになればOK
PubkeyAuthentication yes
2. OpenSSH のサービスの再起動
OpenSSH の設定ファイルsshd_config
を読み込ませるには、OpenSSH サービスを再起動する必要がある。
コントロールパネルから再起動することもできますし、PowerShell からも再起動できるようです。
Linux での作業
1. sshの公開鍵と秘密鍵を作成する
OpenSSH の公開鍵と秘密鍵を用意する。基本的には既存のものを使いまわさない方がいいので作成することになる。
暗号方式としては、ed25519
方式が推奨されているが、RSA
でもよいだろう。
ed25519
方式の暗号鍵なら次のコマンドを実行する。
ssh-keygen -t ed25519
RSA
方式の暗号鍵なら 4096 ビット長の鍵にしておいた方が安心なので次のコマンドで作成する。
ssh-keygen -t rsa -b 4096
2. Windows に公開鍵をデプロイ
Win-server
に公開鍵を登録したい。しかし、Microsoftドキュメントの 公開キーのデプロイ/OpenSSH キーの管理 によると、Windows ではそのアカウントが管理者権限か一般のアカウントかで鍵を登録するファイルが異なるそうだ。
なお、ssh-copy-id
はWindows 向けには動作しないようです。
2-1. 一般ユーザー
ssh-copy-id
は動作しないのですがすることは同じ。
Win-server
の一般ユーザー username
に公開鍵をデプロイするには、そのユーザーのホームディレクトリに.ssh
を作成して、authorized_keys
ファイルに追加する。
まず、Linux から Win-server
に username
として ssh でログインして、ユーザーのホームディレクトリに .ssh
をディレクトリを作成する。Windows はパス区切り文字には/
でも代用できる。Linux では\
が特殊文字と扱われるので避けてみる
設定が完了できていないので、パスワードの入力が必要。
ssh username@Win-server mkdir "C:/Users/username/.ssh"
ディレクトリが存在していた場合は、エラーになります。
エラーにならなかった場合
ディレクトリを作成したら、その中に authorized_keys
を作成して、公開鍵を追加する。
Linux で作成した公開鍵が ~/.ssh/id_ed25519.pub
だったとして次のコマンドを実行する。
設定が完了できていないので、パスワードの入力が必要。
scp ~/.ssh/id_ed25519.pub username@Win-server:C:/Users/username/.ssh/authorized_keys
エラーになった場合
エラーになった場合は、ディレクトリが存在していたのかもしれません。dir コマンドなどで中身を確認するといい。
ssh username@Win-server dir "C:/Users/username/.ssh"
authorized_keys
ファイルがあれば、scp コマンドでファイルを取得して Linux 上で確認しよう。
2-2. 管理者権限のユーザー
Microsoft ドキュメント管理ユーザー/OpenSSH キーの管理 によると、管理者のアカウントの場合は、C:\ProgramData\ssh\
に作成した、administrators_authorized_keys
ファイルに公開鍵を登録する必要がある。
C:\ProgramData\ssh
はすでに存在していることがわかっているので、administrators_authorized_keys
ファイルに Linux から公開鍵をコピーすればいい。また、Windows ならではなだが ACL を設定する必要がある。
ここでは、Win-server
のアカウントはusername
とし、Linux で作成した公開鍵が ~/.ssh/id_ed25519.pub
だったとして次のコマンドを実行する。
scp ~/.ssh/id_ed25519.pub username@Win-server:C:/ProgramData/ssh/administrators_authorized_keys
ファイルを登録したら、ACL を設定する。
ssh username@Win-server icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
3. 確認
Linux から Windows にファイルを送信するなどして確認する。うまくいけば、~/.ssh/config
などの作成も検討しよう。
scp -i ~/.ssh/id_ed25519 test username@Win-server:test
Emacs 28.1 をソースからビルド
Emacs 28.1 をソースからビルド
Emacs 28.1 がリリースされていたのでとりあえずソースからビルドしよう
https://github.com/emacs-mirror/emacs/tags から emacs-28.1 の zip をダウンロード
unzip emacs-emacs-28.1.zip cd emacs-emacs-28.1 ./autogen.sh mkdir -p ~/work/usr/local ./configure --prefix=~/work/usr/local/ make
プロになるJava日記
プロになるJava日記
ISBN:978-4-297-12685-8 の プロになるJava を購入した。Java は雰囲気しか知らなかったのでこの際プロになってみよう。
私の環境
- macOS 12.3.1
- Intel Mac
- 2020 年の 13 インチモデル
- Java
- openjdk version "17.0.2" 2022-01-18
- OpenJDK Runtime Environment Temurin-17.0.2+8 (build 17.0.2+8)
- OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (build 17.0.2+8, mixed mode, sharing)
- Intellij Community Edition
- 2021.3.3
1章
- 以前に Intellij をインストールしてあったので、そのまま更新して使うことにした。
- プロになるJava はキーマップの設定をデフォルトにするように勧めていたが、よくわからないのでそのままでいいことと考えた
2章
- Intellij のキーマップがおかしい? →あ、そうかを繰り返してしまう。
3章
3.1 JShell
- JShell は Java9 から導入されたらしい、Java の REPL らしい。
- ふーん、やっぱり Common Lisp のREPLって優れたアイディアだったんだなーと感心。
- あれ、Intellij のファイルの内容をJShell に送信する機能が 3.1章にでてこないぞ?
4章
- 特になし
書き初め
書き初め
- GitLab の 校正役としてがんばった
- FTBFS due to undocumented external dependency #88 への応答