PowerShell/Win32-OpenSSH/ を触ってみたよ
microsoftがOpenSSHをサポート! という話から 10/13づけでとりあえず動くバイナリが出てましたのでちょっと触ってみました。
ダウンロードは PowerShell/Win32-OpenSSH · GitHub のreleaseから。 インストール方法は Deploy Win32 OpenSSH · PowerShell/Win32-OpenSSH Wiki · GitHub にあります。 一応書いておくと
ダウンロードしたファイルを任意の場所に解答
中のsetup-ssh-lsa.cmdを管理者として実行
再起動
ssh-keygenで4種類のssh_host_keyを作るパスワードはなしで。(別に1個だけでもいいけどなんか警告が出る)
ssh-keygen.exe -t rsa -f ssh_host_rsa_key
ssh-keygen.exe -t dsa -f ssh_host_dsa_key
ssh-keygen.exe -t ecdsa -f ssh_host_ecdsa_key
ssh-keygen.exe -t ed25519 -f ssh_host_ed25519_keysshdを起動
以上でsshdが動かせます。
今回はローカルで試したのでローカルホストに接続してます。
クライアント側は ssh localhost でつなげると、パスワードを聞かれるので入力するとつながります。
つないだ先はpowershellかと思ったらどうもcmd.exeっぽく。
どこかにshell変更する設定ファイルがあるのかも。
で、ここからが挙動の話。
- コマンド打つと、コマンド名が2回表示されます。自分の打ったのと合わせて3つ。
- 存在しないコマンドを打つと、帰ってきたプロンプトに"そんなコマンドありません"的なメッセージがかぶります。
- powershellを動かすと sshdが動いてるところでpowershellが動きます。
sshdが動いてるほうでpowershellを終了するまで応答が帰ってきません
この件についてはwikiに書いてありました。
powershell -File -
とやるとpowershell使えます。 - cmd.exeは普通にsshでログインしたプロンプトで動いてくれます。
- sshdを動かしたあと、ログインされるとCtrl+C等でsshdが終了できなくなるのでtaskmanagerのお世話になる必要があります。(プロセス強制終了)
- sshクライアントは Enterキーを押すまでキー入力を送ってくれないっぽいです。
- 上記のことから、tab補完とかききません。
とりあえずさらっと触ってみたところこのくらい。
Enterキーを押すまでキー入力を送ってくれないっぽいので、 ssh した先でさらに sshしたりすると パスワードが*にならずそのまま表示されます。
これはさすがによろしくないのでは。
Windows Vagrant VirtualBoxでCentOS7なbase boxとかつくってみたはなし
やり方は本家のマニュアル見ましょう。
- vagrantのインストール。
インストール後、pathが通ってなければ通しましょう。 - sshのインストール
msys2とかMinGWとかcygwinとかなんでも(pathを通しましょう)
注意)msys2とかcygwinからwindowsのvagrantを使うときは
.bash_profile とかに export VAGRANT_DETECT_OS=cygwin
とやっておかないとttyありませんみたいに言われます。 - VirtualBoxのインストール。
- VirtualBoxへのCentOS7インストール
HW設定にて オーディオとUSBサポートを無効
名前をたとえばCentOS7に
rootのパスワードは vagrant
ユーザ vagrant パスワード vagrant でユーザを作る - VirtualBox Guest Additionsのインストール
yum install bzip2
yum install gcc
yum install kernel-devel-(バージョン).x86_64
yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarc.rpm
yum install dkms
メニューのデバイスからGuest Additions CDイメージの挿入
mount -r /dev/sr0 /mnt/
/mnt/VBoxLinuxAdditions.run - CentOS7の設定
sudoers 行追加
(1 vagrant ALL=(ALL) NOPASSWD: ALL )
(2 Defaults:vagrant !requiretty)
(3 Defaults:root !requiretty)
vagrantユーザへ authorized_keys配置。
chmod 700 .ssh
chmod 600 authorized_keys
いらないファイルの削除
/etc/sysconfig/network-scripts/ifcfg-e*
/etc/udev/rule.d/70-persistent-net.rules - box化
vagrant package --base CentOS7(VirtualBoxでつけた名前)
package.box という名前で作成される - vagrantにとりこみ (ここではbaseにしてるけど任意の名前にできる)
vagrant add box base package.box - vagrantで使ってみる
適当なディレクトリで
vagrant init (add box でbase以外を指定した場合はここにその名前を入力)
vagrant up - vagrantfile
config.vm.network "private_network", ip: "192.168.565.10"
とかやるとIPアドレス固定できる
(追記 sudoersへ3行目の追加。
vagrantfileに
config.vm.provision "shell", inline: <<-SHELL
sudo rpm -i /vagrant/some.rpm
SHELL
みたいなことをやったらttyがないとsudoできませんと怒られました。
provisionはrootユーザでやっているっぽいです。
IEEE 802.* 簡易まとめ
Linux bonding vlan
Linuxでbondingを使いつつvlanを使うと悲しいことになるようです。
eth0 eth1 でbonding(Active/Standby)構成にして、そこにVLANを作ると、
VLAN側には物理ラインの切り替わり情報が行かないようで、
切り替わったにも関わらずVLANからはGratuitous ARPが飛ばないので
切り替わりにすごく、時間がかかるという不幸。
VLANから定期的にarping投げるとかそういうバッドノウハウ的なのばかり見つかって悲しかったです。
VLANであればいくようです、今回、KVMホストでbonding組んでVLAN作ってそこにブリッジを作ってKVMゲストにつなげ、KVMゲスト上にIPアドレスをふるということをやっていたためでした。
KVMホストでActive/Standby構成のpreemptにしておくと、Active側が復帰してStandbyからActiveのほうに切り替わった時に GARPがとばせず……みたいな話でした。
ブレードサーバ続き
iLOの話。
HPのサーバにはIntegrated Lights-Outというサーバのハードウェアの状態を監視する機能が付いています。
電源をさしたら常に動いているようなもので、ブレードではなく、ラックマウントサーバ等では、独立したイーサポートを持っていて、
完全に別のネットワークにて管理できるようになっています。
しかし、サーバ上にある通常のNICと同じポートを使うこともできるようになっているので、ブレードサーバではそうして使うのかなと思っていたら
iLOのマニュアルには、そのNICと同じポートを共有することはc-Classのブレードサーバ出は使えませんと書いてありました。
色々確認してみると、c7000やc3000エンクロージャには、Onboard Administrator というマネジメントカードが1個付いていて、そこのイーサネットポート経由で各ブレードのiLOにアクセスするように書いてありました。
本当にそこしか使えないのかなぁ、と実機がないので資料をあさっています。
ブレードサーバ
最近、ブレードサーバに環境を構築するから。
ということでふわっとした要件定義のまま環境構築に必要な資料作ったりしてます。
HPのc7000というエンクロージャを使うことまでは確定していて、使うブレードの選定とかそんなのをやってたり。
エンクロージャにささるブレードのNICがFlex-10もしくはFlexFabric とかいう、
10G のポートが2つついてるもので、ブレードのBIOSというかUEFIから10Gを4ポートに見せることができるみたいな
なんだかよくわからない機能が付いてて、FlexFabricのほうはそのうち1ポートをHBA(Fiberchannel用)に設定できますということらしく。
外部ディスクがFiberchannelなのでNICを3つのイーサとHBAに分離して使うことまでは確定したとか。
FlexFabricを使いたければ エンクロージャに搭載するスイッチモジュールもその機能が付いたものにしなくちゃいけないとか、
はては搭載するすべてのブレードでそのNICじゃないとだめとか、制約は色々あるものの、物理的な接続はシンプルになりますよ。というのがウリみたいです。
スイッチモジュールの設定とかとても面倒くさそうなんですけどね。
このタイプのスイッチモジュール側はエンクロージャから外部に出るポートが8個あって、うち4個はイーサ専用で4個は10GイーサもしくはFiberchannelがさせますみたいになってました。
ブレードなのでというわけでもないですが、仮想環境を構築して、みたいな話になってるので、各VMで必要とするネットワーク帯域考えたり、10Gのポートは外部ディスクとの接続も考慮した帯域になるので8G Fiberchannelとかにすると1本でまかなおうとすると通信に使える帯域は2Gしかないよなーとか。
そんなことを考えつつ、仕事としては資料作成ばかりで、手元に実機がないので、公式のマニュアルとか見ながらこれはできそうだとかこれは無理かも、みたいな整理して資料にまとめる日々です……
つらい。