tor 経由で ssh でアクセス

tor はブラウザだけじゃなくて socks5 を設定することで ssh も使える

Tor Project | Downloadから「Download Tor Source Code」のリンクをクリックして、「Windows Expert Bundle」からファイルをダウンロードする。
f:id:nao550:20220201233733p:plain

ダウンロードしたzipファイルを適当なフォルダに展開する。自分は「C:\temp\torsocks」展開した。
f:id:nao550:20220202001459p:plain


コマンドプロンプトを管理者権限で開いて、以下のコマンドを実行

.\tor.exe --service install

f:id:nao550:20220201233844p:plain

「サービス」を見ると、「Tor Win32 Service」が登録されて、実行になっているはず。
f:id:nao550:20220201234037p:plain


Teratermの「プロキシ」で「type:SOCKS5」、「Hostname:localhost」、「Port number:9050」で、「URL」に「socks://localhost:9050」と設定される。
f:id:nao550:20220201234833p:plain


あとはふつうに Teraterm から ssh アクセスすれば、Tor 経由の ssh アクセスになるので、身元を追うことは基本的に不可能になる。

# サービスのインストール
tor.exe --service install   

# torrc ファイルを作成してサービス登録時に読み込みする
tor.exe --service insatll --options -f "c:\temp\torsocks\tor\torrc"

# サービスの削除
tor.exe --service remove

2021年暮れの CentOS6.6アップグレード作業

今更ながら CentOS 6.6 のアップグレード。すでに CentOS 6 系のサポートは 2020年11月30日でサポートが終了しているが、なんか手元に残っていたのでアップグレードをしてみた。

[root@hoge ~]# yum check-update
読み込んだプラグイン:fastestmirror, security
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
エラー: Cannot find a valid baseurl for repo: base

当然のことながらできない。

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

mirrorlist をコメントアウトして、baseurl のコメントを外して、http://mirror.centos.orghttps://vault.centos.org/ に変更する。
とりあえず、CentOS-Base.repo の base と updates 以外の項目は enable=0 にして無効にする。

[root@hoge yum.repos.d]# yum check-update
読み込んだプラグイン:fastestmirror, security
Determining fastest mirrors
 * rpmforge: mirrors.netix.net
https://vault.centos.org/centos/6/os/x86_64/repodata/repomd.xml: [Errno 14] problem making ssl connection

SSLでエラーがでる。証明書が古いので証明書を更新する。

適当なディレクトリに移動して、証明書をダウンロードして rpm でインストール。

[root@hgoe src]# wget --no-check-certificate https://vault.centos.org/6.10/updates/x86_64/Packages/ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm
[root@hoge src]# rpm -Uhv  ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm

他に P11-kit や nss、Openssl などのパッケージが必要になるかもしれないので必要に応じて vault あたりからダウンロードして、rpm でインストールする。

[root@hoge yum.repos.d]# yum check-update
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
base                                                     | 3.7 kB     00:00
base/primary_db                                          | 4.7 MB     00:03

エラーが出なくなったので、アップグレードを行う。

[root@hoge yum.repos.d]# yum update -y
reboot
[root@hoge ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)

6.10 にアップグレードされた。

ハイレゾ音源について

ハイレゾ音源とその再生についていろいろ調べた。目的はPC環境での再生について。

ハイレゾ音源とは

基本的にCD(16bit、44.1MHz)以上のビットレートの音源がハイレゾ音源になる。特に量子化ビット数は24bit以上が求められる。

フォーマットとして、WAVE、MP3、AACFLACなどがある。
非圧縮のWAVE、AIFF可逆圧縮FLAC、ALAC、非可逆圧縮のMQA、MP3、OggAAC

ハイレゾ音源で使用されることが多いのは FLAC だが、最近は MQA が使用されることも多い。

MQAは既存のCDなどでCD音質で聞くことができるが、対応機ならハイレゾで聞くことができるという特徴がある。MQA のほうが圧縮率が高いが非可逆で技術がクローズドなため、技術がオープンで可逆圧縮FLACに対して長期で見た場合継続に疑問点が付く。

参考:https://rideonmarin.blogspot.com/2018/04/mqa-part15.html

MQAの対応には「MQAフルデコーダー」と「MQAレンダラー」があり、MQAレンダラーのみではMQAのデコードができず、「MQAコアデコーダー」と組み合わせて再生する。MQAレンダラーは対応のDACなどに、MQAコアデコーダーなどはPC上の再生ソフトなどに搭載される。MQAフルデコーダーは据え置きの再生機などに。

PCMとDSD

PCMはアナログ音声を波の高さで記録する、一般的にPCで使用される方式、DSDはアナログ音声を波の密度で記録するハイレゾ音源で使用されることが増えている形式。

PCMは編集可能だが、DSDは編集が難しく、一発どりや最後のマスタリングで使用されることが多い。またDSDは再生にそれ用のアプリと機器が必要になり、USBを通してデータを送ることができないのでPCMデータに偽装したDoP(DSD over PCM)という形式がある。DoPも送信元、送信先ともに対応している必要がある。

DSDのほうがアナログ感があるらしい。 

配信サービスについて

ハイレゾ音源のストリーミングと、ダウンロード可能なところとがある。

ストリーミング:TIDAL、Qobuz、Spotify、DEEZER、PrimeSeat、AppleMusic、

ダウンロード:e-onkyo music、mora、OTOTOYAmazon Music HD
参考:http://www.alphapex.co.jp/deliver.html

再生環境について

再生ソフトウェア

デコーダーにライセンス料がかかるためMQA対応のフリーソフトはない。


MQA対応:Audirvana、Room など、MQSを FLAC コンテナにして再生することもできるがMQAとして再生するためにはMQAフルデコーダーのDACに出力する必要がある。正常にMQAで再生できればDACのMQAインジゲーターが光る。

FLAC:VOX、foobar2000、Amarra、HQ Player、MediaMonkey、Flacはオープンフォーマットだけあって再生対応アプリは多い。


iTunesから移行できそうなのは、MediaMonky、MusicBee などか

エンコーダー

FLACは公式版 https://ftp.osuosl.org/pub/xiph/releases/flac/foobar2000、fre:ac、Exact Audio Copy

MQAのエンコーダーは一般にはなさそう

[TASK]CDデータの取り込みDBについて調査する

ハードウェア

ハイレゾはデジタルデータの問題でDACでアナログになった音声を出力するスピーカー、ヘッドフォンはそれなりのものであればハイレゾ対応でなくても問題はない。ハイレゾ対応であればより良い音が出るのはたしかだが、そこまでこだわる前にそれぞれのヘッドフォンやスピーカーの音の個性が好きかどうかを気にしたほうがいい。


ハイレゾ対応のポータブル再生機にはヘッドフォンの接続でバランス接続、アンバランス接続がある。アンバランスはRLでグランドが共通、アンバランスはRLでグランドが独立している。 アンバランスは既存の3.5mmジャック、バランス接続は4接点の2.5mm、5接点の4.4mmのジャック形状がある。


Bluetoothハイレゾを再生機に送るなら、Bluetooth 5.0 以上で、aptX HD、AptX Adaptive、LDAC、HWA に対応している必要がある。

Windows 10のアップデートを止める方法

Windows10が自動的にアップデートするのを止めるには、サービスと、グループポリシーを設定する。
環境は Windows 10 Pro 1909で確認。

サービスの停止

[エクスプローラー]から[PC] を右クリくして[管理]をクリック。
f:id:nao550:20210103150840p:plain

[コンピュータの管理]ウィドウが開いたら、[サービスとアプリケーション]にある[サービス]から[Windows Update]を[停止]にする。
f:id:nao550:20210103151113p:plain

グループポリシーの修正

[ファイル名を指定して実行]から[gpedit.msc]を実行する。
f:id:nao550:20210103151315p:plain

[ローカルコンピュータポリシー]の[コンピュータの構成]→[管理用テンプレート]→[Windows コンポーネント]→[Windows Update]にある[自動更新を構成する]を[無効]にする。
f:id:nao550:20210103151534p:plain

f:id:nao550:20210103151722p:plain

以上

AWS Linux 2 に emacs を設定

emacs
emacs

AWS Linux 2 に emacs を設定する作業の記録

AMI から Amazon Linux 2 を立ち上げて、yum upgrade で更新しておく。


標準状態では emacs 25 が yum に用意されている。

[ec2-user@awstest ~]$ yum list |grep emacs
yum list |grep emacs
emacs.x86_64                           1:25.3-3.amzn2.0.1            @amzn2-core
emacs-common.x86_64                    1:25.3-3.amzn2.0.1            @amzn2-core

emacs 25 ではセキュリティ証明書が古く、emacs package が使用できず、package-list-package を実行するとエラーが表示される

Failed to verify signature archive-contents.sig:
No public key for 066DAFCB81E42C40 created at 2020-08-27T21:05:02+0000 using RSA
Command output:
gpg: Signature made Thu 27 Aug 2020 09:05:02 PM UTC using RSA key ID 81E42C40
gpg: Can't check signature: No public key

emacs 26 に更新しても上記の問題は解決できるが、emacs 25 での解決方法は以下の通り。


.emacs.d/init.el に package-check-signature を nil に設定して、elpa などのリポジトリを追加する

(setq package-check-signature nil)

(require 'package)

(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t)
(add-to-list 'package-archives '("ELPA" . "https://tromey.com/elpa/") t)
(package-initialize)

init.el を変更したら、M-x load-file で .emacs.d/init.el を読み直して、M-x package-list-package を実行する。


追加したリポジトリのパッケージ一覧が表示されるので、gnu-elpa-keyring-update をインストールする。

今後は gnu-elpa-keyring-update が自動的に keyring を更新してくれるので、(setq package-check-signature nil) は削除してよい。

WSL2の設定

Windows 10 2004 以降なら WSL2 が使用できる。WSL2 は完全な Linux カーネルを使用しているので、Windows 10 + WSL2 + Docker とかいう運用も可能になる。

インストール

PowerShell を管理者モードで開き、

Windows Subsystem for Linux のインストール

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

"仮想マシン プラットフォーム" のオプション コンポーネントを有効にする

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

ここで再起動して、WSL を有効にする

WSL2 にするにはカーネルコンポーネントの更新が必要になるので、https://aka.ms/wsl2kernel から Linux カーネル更新プログラム パッケージを入手してインストールする。
f:id:nao550:20200530140741p:plain


インストールしただけでは WSL のバージョンが 1 になっているので、2 に変更する

PS C:\Users\user> wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

Microsoft Store で [Linux] で検索するとインストールできるディストリビューションが表示されるので好きなのをインストールする。

f:id:nao550:20200529160442p:plain
Microsoft Store


自分はちょっと前後になってしまって、WSL1 の環境に Ubuntu をいれてしまったので、WSL 2 への変更をする

PS C:\Users\user> wsl --list -v
  NAME      STATE           VERSION

Ubuntu Stopped 1

PS C:\Users\user> wsl --set-version Ubuntu 2 変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください 変換が完了しました。
インストールできれば起動できるようになっているので起動する。 f:id:nao550:20200529160735p:plain スタートメニューにも追加されているのでそちらからでも可能 初回起動時にはLinux管渠のユーザ名とパスワードの設定が求められる。これは Windows とは別のアカウントで、ここで設定するユーザが管理者アカウントとなり、sudo コマンドなどが使用できる。 f:id:nao550:20200529160946p:plain かんたんに WindowsLinux 環境がつくれる。

tips

Linux 環境の /mnt 以下に Windows のドライブがマウントされる。 Linux 上のネットワークインタフェースは Windows と共有されるので、localhost:ポート番号で Linux 上のポートにアクセスできる。 ということは WindowsLinux でポート番号の競合が発生するので実行するサービスには注意が必要。 逆に Linux から Windows のポートにアクセスする場合は、IPアドレスでアクセスする。 参考 Linux 用 Windows サブシステムの概要 | Microsoft Docs

Windows Terminal で SSH

Windows Terminal

Windows Terminal のインストール

Windows Terminal がバージョン1になりまして、めでたいという事で Windows Terminal でSSHができるように設定してみた。

Windows Terminal は Microsoft Store アプリからインストール可能で、「Windows Terminal」で検索すればすぐに出てくるのでインストールすればインストール完了。

Microsoft Store

Windows Terminal の設定は JSON-Schema で記述するようになっていて、設定は CTRL+, もしくはタブの右にある「V」から[設定]」を開くと JSON が関連付けれているアプリから起動する。

OpenSSH のインストール

Windows 10 1809 以降であれば標準機能として OpenSSH がインストールできる。

[設定]から[アプリ] > [アプリと機能] > [オプション機能の管理] の順にたどり、[機能の追加]を追加をクリックして、[オプション機能を追加する]で「ssh」で検索すると、[OpenSSHクライアント]と[OpenSSHサーバ]が見つかるので、[OpenSSHクライアント]にチェックをつけて[インストール]をクリックでインストールされる。

PowerShell経由でインストールするには PowerShell を管理者権限で開いて、

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

として OpenSSH 検索をすると

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

インストール可能な OpenSSH が表示されるので、

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

でインストールする。

OpenSSH のユーザ設定ファイルは %HOMEPATH%\.ssh に保存されるので、config ファイルなどを設定しておくと便利
ssh の話 - 日々雑文

もちろん OpenSSH クライアントをインストールしたあとなら、ssh-keygen コマンドなんかも使える。

Windows Terminal の設定

Windows Terminal の設定は先にも書いたように JSON ファイルを使用して編集する。

初期状態でいくつか設定があり、list 以下に Windows Terminal で開くシェルの設定がある。

           {
                // Make changes here to the powershell.exe profile.
                "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
                "name": "Windows PowerShell",
                "commandline": "powershell.exe",
                "hidden": false
            },

最初から含まれている上記の部分をコピーして新しい項目を作成していく

            {
                "guid": "{67f16340-40c4-445d-b148-a0da636de5c4}",
                "name": "examplessh",
                "commandline": "ssh.exe user@example.com",
                "hidden": false,

                "fontFace": "Cascadia code",  // 
                "fontSize": 10

                "snapOnInput": true,  // 入力時に入力位置までスクロール
                "scrollbarState": "visible",  // スクロールバーの表示
                "historySize": 10000,  // 履歴サイズ

                "useAcrylic": true, // アクリル背景の設定
                "acrylicOpacity": 1, // 背景の透明度

                // backgroundImageAlignment 
                // "center"、"left"、"top"、"right"、"bottom"、"topLeft"、"topRight"、"bottomLeft"、"bottomRight"
                // "backgroundImageAlignment": "top", // 表示する画像の基準値
                "backgroundImageOpacity": 0.3 // 背景の不透明度
                //"backgroundImage": "C:\\Users\\user\\image\\image.jpg"
            }   

guid は PowerShell

PS C:\Users\user> New-Guid

として取得することができる。

commandline で ssh.exe を指定して、接続するユーザ名、サーバを指定しておく。このときに .ssh/id_rsa とかを設定しておくとパスワードなしでサーバにログインすることができる。


でここまで設定しておいてなんだが、Windows Terminal ではまだクリッカブルURLに対応していない。 github では issue として議論されているのでいずれは実装されると思うのだが、自分はターミナルでメールを読んでいるのでこの機能がないと使うメリットが半減してしまう。せめて選択して右クリックメニューで[URLを開く]などがあればいいのだが。


Windows Terminal の設定一覧は以下参照

Windows Terminal Global Settings | Microsoft Docs


余談:

Windows Terminal には倒伏フォントとして、Cascadia code が追加されていて、プログラミング用の合字フォントが含まれている。!= を ≠ にしたり、<-- を ← にしたりしてくれるんだけど、違和感ひどすぎてちょっとこれでコーディングしようという気には今はならない。 もしかしたら将来的には標準になるのかもしれないけど...
Windows ターミナル Cascadia Code | Microsoft Docs


参考
Windows 用 OpenSSH のインストール | Microsoft Docs