リモートデスクトップ接続の履歴を削除する

【環境】
Windows 10(1909)


在宅勤務でWindowsリモートデスクトップ接続を利用する機会が増え、
色々とやっているうちにリモートデスクトップ接続の履歴が増えてしまった。

不要な履歴もあるので、消した時のメモ。

接続の履歴とは、次のような接続時の画面で一覧に表示されるもの。
f:id:savakan:20200909130832p:plain


これを削除するには、次のレジストリを参照する。

\HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default

このレジストリの配下に、MRU0、MRU1、MRU2・・・といった名前で値が保存されている。
これを削除すれば、履歴が消える。

OSを再起動する必要もない。

CentOS 8 の sshd_config で Ciphers が効かない?

【環境】
$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

$ ssh -V
OpenSSH_8.0p1, OpenSSL 1.1.1c FIPS 28 May 2019


Cent8 の /etc/ssh/sshd_config に「Ciphers」を指定しても、反映されないよ・・・
という相談を受けたので、やってみた。

インストール後、特に設定を弄っていない /etc/ssh/sshd_config にて、

Ciphers  chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

のようにいくつか設定を書いてみたが、どうも有効になっていない。
どうもCentOS 7までとは様子が違う?


次のような感じで接続を試すと、sshd_config で許可していないCiphers で接続してしまった。

$ ssh -c aes128-cbc localhost

sshd を再起動するの忘れた?とか一瞬思ったけど、そうではなかったので、
systemd 周りを見ていくことにした。

まずは、/usr/lib/systemd/system/sshd.service

[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.target
Wants=sshd-keygen.target

[Service]
Type=notify
EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

であり、

ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY

sshdの起動コマンド。

プロセスを見てみると、

# ps aux | grep sshd
・・・
root        2592  0.0  0.3  92968  6860 ?        Ss   18:58   0:00 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,umac-128@openssh.com,hmac-sha2-512 -oGSSAPIKexAlgorithms=gss-gex-sha1-,gss-group14-sha1- -oKexAlgorithms=curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 -oHostKeyAlgorithms=rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com -oPubkeyAcceptedKeyTypes=rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com -oCASignatureAlgorithms=rsa-sha2-256,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,rsa-sha2-512,ecdsa-sha2-nistp521,ssh-ed25519,ssh-rsa

あ、すんごぃ長い。

前述のファイルにあった「-D $OPTIONS $CRYPTO_POLICY」の部分のどちらかが長い訳で、もう少し見てみることに。


/usr/lib/systemd/system/sshd.service の中で、関係するのは以下の部分。

EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
EnvironmentFile=-/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY

EnvironmentFile で指定されたファイルを見てみると・・・

/etc/crypto-policies/back-ends/opensshserver.config は、

CRYPTO_POLICY='-oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,umac-128@openssh.com,hmac-sha2-512 -oGSSAPIKexAlgorithms=gss-gex-sha1-,gss-group14-sha1- -oKexAlgorithms=curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 -oHostKeyAlgorithms=rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com -oPubkeyAcceptedKeyTypes=rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384,ecdsa-sha2-nistp384-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com,ecdsa-sha2-nistp521,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,ssh-rsa,ssh-rsa-cert-v01@openssh.com -oCASignatureAlgorithms=rsa-sha2-256,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,rsa-sha2-512,ecdsa-sha2-nistp521,ssh-ed25519,ssh-rsa'

変数名 CRYPTO_POLICY も一致で、先ほどのpsコマンドの結果と同じ。
これをよく見ると、「-oCiphers=」で指定されたオプションがある。
sshdが起動する際、設定ファイル(sshd_config)を読み込むものの、sshd の起動時にコマンドラインで指定されたオプションの方が優先される。
従って、sshd_config に Ciphers を設定しても、有効になっていなかった。


もう1つのファイル、/etc/sysconfig/sshd は、

# Configuration file for the sshd service.

# The server keys are automatically generated if they are missing.
# To change the automatic creation, adjust sshd.service options for
# example using  systemctl enable sshd-keygen@dsa.service  to allow 
creation
# of DSA key or  systemctl mask sshd-keygen@rsa.service  to disable RSA 
key
# creation.

# Do not change this option unless you have hardware random
# generator and you REALLY know what you are doing

SSH_USE_STRONG_RNG=0
# SSH_USE_STRONG_RNG=1

# System-wide crypto policy:
# To opt-out, uncomment the following line
# CRYPTO_POLICY=

となっていて、CRYPTO_POLICY はコメント行になっている。

ついでに、

ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY

に書かれている変数名 $OPTIONS は見当たらない・・・
これが何かは分からず(´・ω・`)


では CRYPTO_POLICY って何?という事だけど、赤帽エンジニアさんのBlogに詳しく解説があるので参考。
rheb.hatenablog.com



原因は分かったけど、どうやって対処する?というのは、以下のいずれかが考えられる。

  • 方法1)crypto-policies を DEFAULT より高セキュリティへ変更
  • 方法2)/etc/sysconfig/sshd に CRYPTO_POLICY= と空文字を指定し、sshd_config の記載を有効にする

crypto-policies を変更する場合

現状確認と設定変更は以下の通り。

現状確認
# update-crypto-policies --show

設定変更
# update-crypto-policies --set FUTURE

/etc/crypto-policies/config が書き換わるらしい。

crypto-policies を変更後、sshd を再起動して ps コマンドで sshdコマンドラインオプションを確認してみた。

DEFAULTの場合
-oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc

FIPSの場合
-oCiphers=aes256-gcm@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc

FUTUREの場合
-oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc

LEGACYの場合
-oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc,3des-cbc

LEGACY だと、3des が出てくる。


/etc/sysconfig/sshd に CRYPTO_POLICY= と空文字を指定し、sshd_config の記載を有効にする場合

こちらの方法は、Ciphers を細かく自由に設定できる。
また、この方法の場合、MACs や KexAlgorithms など、$CRYPTO_POLICY の変数で指定されていた項目も sshd_config で設定できるようになる。

/etc/sysconfig/sshd にて

#CRYPTO_POLICY=
 ↓
CRYPTO_POLICY=

/etc/ssh/sshd_config にて

Ciphers  chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

などとし、sshd を再起動。


いずれの場合も、以下のように動作確認する

$ ssh -c aes128-cbc localhost
Unable to negotiate with 127.0.0.1 port 22: no matching cipher found. Their offer: chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

ついでに、指定可能な暗号化方式は、以下のように確認できる。

$ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com

vi で方向キーがABCDを入力してしまう問題

【環境】
Debian 10(Buster)


ちょっとDebian 10(Buster)を触ることがあって、気になったのでメモ。

viで方向キー(矢印キー)を押すと、
 ↑:A
 ↓:B
 →:C
 ←:D
が入ってしまう。


問題を解消するには、以下のファイルを作成する。

$ vi ~/.vimrc
 ↓
set nocompatible

バックスペースが効かないので、以下も追加する。

set bs=indent,eol,start


全ユーザにデフォルトで適用するには、/etc/vim/vimrc へ登録すれば良い・・・
訳ではなく、Debian10のデフォルトの vi は、「vim-tiny」を使っているため、

  • /etc/vim/vimrc:こっちに設定しても反映されない
  • /etc/vim/vimrc.tiny:こちらなら設定が反映される

となる。

vim-tinyでも、ユーザの ~/.vimrc は有効。

ESXiホストに作成されたコアダンプファイルを削除する

実験用ホストを ESXi 6.0 -> 6.5 へアップグレードした。
アップグレードは、6.5 の インストールディスク(DVD)を作成して行った。
するとローカルディスクの配下に vmkdump というディレクトリができ、その下にコアダンプファイルが作成されていた。


わりと容量があるので、消したい。
Web Clientの操作で消せず、root でSSHログインしてから rm コマンドでも消せない。
(エラーメッセージをコピーし忘れた。ファイルが使用中あるいはbusyといった旨のエラーが出たと思う。)

SSHでESXiホストへログインして確認すると、以下のようなファイル。

[root@ESXi:/vmfs/volumes/***/vmkdump] ls -lh
total 3119104
-rw-------    1 root     root        3.0G Jun 6 02:51 ***.dumpfile


ドキュメント(後述)によると、コアダンプの一覧を表示するコマンドがあるらしい。

[root@ESXi:/vmfs/volumes/***] esxcli system coredump file list
Path                                        Active  Configured        Size
------------------------------------------  ------  ----------  ----------
/vmfs/volumes/***/vmkdump/***.dumpfile    true        true  3193962496


次のコマンドを実行して、コア ダンプ ファイルを無効化する

[root@ESXi:/vmfs/volumes/***] esxcli system coredump file set --unconfigure
Path                                    Active  Configured        Size
--------------------------------------  ------  ----------  ----------
/vmfs/volumes/***/vmkdump/***.dumpfile   false       false  3193962496

FILE_NAME を指定して、ファイルを VMFS データストアから削除してみる

[root@ESXi:/vmfs/volumes/***] esxcli system coredump file remove --file FILE_NAME
Dump file ***.dumpfile read count could not be determined; Use --force to override check.

なぜか消せない。
表示された通り、 --force を付けてやってみる。

[root@ESXi:/vmfs/volumes/***] esxcli system coredump file remove --file FILE_NAME --force
Unlink of file ./***.dumpfile failed: No such file or directory

なぜかファイルが無いと言われる。(ls で確認すると存在するのに)

ダメ元で、rm コマンドを試したら削除できた。
えーーーっ (´・ω・`) ???

ついでに、ダンプファイルを削除したら、ファイルが入っていた vmkdump ディレクトリも削除できるようになった。


参考:
docs.vmware.com



こちらの参考URL、手順2のコマンドの先頭に「esxcli」が抜けているミスがある(本日時点)。
修正された模様。

コマンドプロンプトやPowerShell でファイルのハッシュ値を計算する

ダウンロードしたファイルなどのハッシュ値を計算するとき、Windowsの標準機能を使う方法。

試した環境

以下におけるコマンドプロンプトPowerShell
Windows 10 1909
Windows Server 2016

書式

cmd/PS> certutil -hashfile <ファイルパス> [ハッシュアルゴリズム]

ハッシュアルゴリズムは、以下が指定できる。
 ・MD2
 ・MD4
 ・MD5
 ・SHA1
 ・SHA256
 ・SHA384
 ・SHA512
省略するとSHA1 になる。

アルゴリズムの一覧は、certutil -v -? で確認できる。


参考)certutil
docs.microsoft.com



以下、内容に「123」と書いたテキストファイルのハッシュ値を計算した例。

MD5
PS E:\> certutil -hashfile .\sample.txt MD5
MD5 ハッシュ (対象 .\sample.txt):
202cb962ac59075b964b07152d234b70
CertUtil: -hashfile コマンドは正常に完了しました。
SHA1
PS E:\> certutil -hashfile .\sample.txt SHA1
SHA1 ハッシュ (対象 .\sample.txt):
40bd001563085fc35165329ea1ff5c5ecbdbbeef
CertUtil: -hashfile コマンドは正常に完了しました。
SHA256
PS E:\> certutil -hashfile .\sample.txt SHA256
SHA256 ハッシュ (対象 .\sample.txt):
a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
CertUtil: -hashfile コマンドは正常に完了しました。
SHA384
PS E:\> certutil -hashfile .\sample.txt SHA384
SHA384 ハッシュ (対象 .\sample.txt):
9a0a82f0c0cf31470d7affede3406cc9aa8410671520b727044eda15b4c25532a9b5cd8aaf9cec4919d76255b6bfb00f
CertUtil: -hashfile コマンドは正常に完了しました。
SHA512
PS E:\> certutil -hashfile .\sample.txt SHA512
SHA512 ハッシュ (対象 .\sample.txt):
3c9909afec25354d551dae21590bb26e38d53f2173b8d3dc3eee4c047e7ab1c1eb8b85103e3be7ba613b31bb5c9c36214dc9f14a42fd7a2fdb84856bca5c44c2
CertUtil: -hashfile コマンドは正常に完了しました。

0バイトのファイルを試すと・・・

以下のエラーが出る場合は、ファイルサイズが0の場合がある。
0バイトのテキストファイルなどで試すと確認できる。

PS E:\> certutil -hashfile sample.txt MD5
CertUtil: -hashfile コマンド エラーです: 0x800703ee (WIN32: 1006 ERROR_FILE_INVALID)
CertUtil: ファイルを格納しているボリュームが外部的に変更されたため、開かれているファイルが無効になりました。

Windows Server 2016へのログオン時にサーバーマネージャーを自動起動させないようにする

久々のWindows Serverなので、初歩的なメモ。


それ目的じゃない時にも起動するのがウザいので、サーバーマネージャーを自動起動しないようにする。

Windwos Server 2016 でも、2012と同様の手順で良いらしい。

2012は、ほとんど触ってない(´・ω・`)
2019は、まだ触る機会がない(´・ω・`)

1)「管理」から「サーバー マネージャーのプロパティ」を開く
2)「ログオン時にサーバー マネージャーを自動的に起動しない」にチェック

サーバー マネージャーのプロパティ

サーバー マネージャーの自動起動を無効化


以下、参考。
www.atmarkit.co.jp

データ移行したら、やっぱりHDDのセクタが逝っていた

先日から記事にしているPCの件にて、新旧PC間でデータ移行する際、あるデータをコピーしようとするとエクスプローラが固まった。

何か月か前から、CrystalDiskInfoで「注意」が出ていたが、やっぱり読みだせないデータがあった。
どこかに読めないデータがあるのだろうと思いつつ、様子を見ていたが、そのデータが見つかった。

実際、しばらくアクセスしていないファイルだったので、触らない限りは大丈夫だったのだろう。
HDDがこうなる前からデータのバックアップはNASにも取ってあるので、データの損失は無かったのが救い。

CrystalDiskInfoで値を見ると、「C6 回復不能セクタ数」「C5 代替処理保留中のセクタ数」のあたりが問題と思われる。
f:id:savakan:20200620081847p:plain


CrystalDiskInfo で、これらの値がここまで大きいのは初めてだった。
HDDは、異音がする訳でもない。
適当なデータを用意し、データ領域を9割以上埋めてみたが上記のセクタ数に変化は無かった。
ダメになっているのは、既にエラーになっているセクタぐらいなのかもしれないが、さすがに怖くて使い続ける事もできない。

購入してから年数が経過しているため、RMA(Return Merchandise Authorization/返品保証)の対象でもない。
3900時間しか使っていないのに、モッタイナイ(´・ω・`)