私は怠惰なので、不必要なジェスチャーなしですべてが便利に整理されているときにそれが好きです。時々私はそれを快適に行うのが面倒です。
SMBを介してサーバーへのアクセスを整理する必要があり、解決策を探しているときに、次の記事に出くわしました。SSHforWindows8を使用してNikhefホームディレクトリをマウントする。パティが使用したのは、シンプルで使いやすいソリューションでした。少し後、別のコンピューターでこのソリューションを構成する必要があり、OpenSSHに基づく組み込みのsshクライアントがWindows 10に登場したため、ここではPuttyが不要であることに気付きました。
カットの下で-同じスキーム、Windows10でOpenSSHのみを使用します。
私のスキームは次のように構成されています。
- Sambaはサーバー上で実行されており、サイトのあるルートフォルダーはwww-dataユーザーに代わって共有されます。キー認証付きのsshを介してのみサーバーにアクセスします。NATの背後にあるサーバー、ポートはsshに対してのみ転送されます。
- 組み込みのOpenSSHシステムを介してWindows10のホームマシンのアカウントにログインするプロセスでは、キーによる認証を使用してサーバーへの接続が確立されます。
- リモートマシンのポート445は、10.255.255.1で利用可能なネットワークループバックアダプタのローカルポート44445にトンネリングされます。
- ループバックアダプタ10.255.255.1では、ポート44445はローカル445にプロキシされます。したがって、\\ 10.255.255.1 \に接続すると、リモートファイル共有が開きます(必要に応じて、ネットワークドライブとしてマウントされます)。
これはすべて自動です-怠惰な勝利。安全、高速、ネイティブな外観。どのエディターでも、リモートサーバーとローカルサーバーでファイルを開いて編集できます。編集したファイルをダウンロードして必要な権限を設定するのに問題はありません。そうは言っても、Sambaにはセキュリティ上の問題はありません。
だから-最初のステップバイステップ:
WINDOWS側
OpenSSH. Windows 10 Windows Server 2019 SSH OpenSSH. . –
ssh

— "", .
1.
loopback- . .
hdwwiz.exe

« » ( Windows 10 Pro).
«» -> « , » -> « » -> «Microsoft –> Microsoft KM-Test» -> «»
, , devcon.exe, .
CMD ( ).
netsh interface show interface

. Ethernet 2.


:
netsh interface ip set address name="Ethernet 2" source=static address=10.255.255.1 mask=255.255.255.0
10.255.255.1
, TCP- 445, Windows lanmanserver . lanmanserver portproxy, .
( «start=» !!!):
sc config lanmanserver start= demand
sc config iphlpsvc start= auto
10.255.255.1 44445 445
netsh interface portproxy add v4tov4 listenaddress=10.255.255.1 listenport=445 connectaddress=10.255.255.1 connectport=44445
, lanmanserver .
loopback-,
netstat -an | find ":445 "
TCP 10.255.255.1:445 0.0.0.0:0 LISTENING
. "0.0.0.0:445" — - .
netsh interface portproxy show v4tov4
2.
. , .
mkdir %APPDATA%\CIFSoverSSH
cd %APPDATA%\CIFSoverSSH
ssh- ( , : cifsoversshkey)
ssh-keygen -t rsa -N "" -f cifsoversshkey
. , OpenSSH UNPROTECTED PRIVATE KEY FILE! . , Windows. GUI, . Windows :
icacls cifsoversshkey /RESET
icacls cifsoversshkey /grant _:F /inheritance:r
, .
icacls cifsoversshkey
, OpenSSH !
cifsoverssh.cmd :
call cmd /c start "" /B C:\Windows\System32\OpenSSH\ssh.exe user@111.111.111.111 -p remoteport -i %APPDATA%\CIFSoverSSH\cifsoversshkey -L 10.255.255.1:44445:localhost:445 -N -o "StrictHostKeyChecking=no"
:
user@111.111.111.111 – linux @
3.
: powershell -nologo -noninteractive -windowStyle hidden -command "%APPDATA%\CIFSoverSSH\cifsoversshkey.cmd"
powershell . CMD , , .
:
schtasks /CREATE /RU %username% /TN "CIFS over SSH" /TR "powershell.exe -nologo -noninteractive -windowStyle hidden -command %APPDATA%\CIFSoverSSH\cifsoversshkey.cmd" /SC ONLOGON /DELAY 0000:10 /IT /RL highest
Windows .
Linux
, ssh- .
ssh windows-
C:\Windows\System32\OpenSSH\ssh.exe user@111.111.111.111 -p remoteport
, ~/.ssh/authorized_keys ( – ).
mkdir ~/.ssh && touch ~/.ssh/authorized_keys
, windows- ( %APPDATA%\CIFSoverSSH\cifsoversshkey.pub). . , .
Samba ( Debian)
apt update && apt install samba
mv /etc/samba/smb.conf /etc/samba/smb.conf.old
touch /etc/samba/smb.conf
:
[global]
realm = webserver
server string = Web server
workgroup = WORKGROUP
# Setup charsets
dos charset = cp1251
unix charset = utf8
# Disable printers
load printers = No
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
# Setup logging
log file = /var/log/smbd.log
max log size = 50
max xmit = 65536
debug level = 1
# Setup daemon settings
domain master = No
preferred master = Yes
socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=65536 SO_RCVBUF=65536 SO_KEEPALIVE
os level = 65
use sendfile = Yes
dns proxy = No
dont descend = /proc,/dev,/etc
deadtime = 15
# Enable synlinks
unix extensions = No
wide links = yes
follow symlinks = yes
# Securtity settings
security = user
map to guest = Bad Password
guest account = nobody
create mask = 0664
directory mask = 0775
hide dot files = yes
client min protocol = SMB2
client max protocol = SMB3
[ShareName]
comment = Sites folder
path = /home/web
force user = www-data
force group = www-data
read only = No
guest ok = Yes
writable = yes
create mask = 0664
directory mask = 2775
. ShareName. Path = , . force user force group linux-, . - – www-data
Samba
systemctl restart smbd
Windows
exit
. windows ( ).
\\10.255.255.1\ShareName — .