SSH内核
sshkernel的Python项目详细描述
ssh内核
ssh内核是一个jupyter内核,专门用于远程执行命令 使用paramikossh客户端。
主要要求
- Python3.5+
- iPython 7.0+
安装
pip install -U sshkernel
python -m sshkernel install [--user|--sys-prefix]
# Type `python -m sshkernel install --help` for more information.
要升级:
pip install --upgrade sshkernel
要卸载:
jupyter kernelspec remove ssh
pip uninstall sshkernel
开始
使用ssh内核的基本示例。
配置
ssh内核从~/.ssh/config
文件获取配置数据以连接服务器。
可能的关键字如下:
- 主机名
- 用户
- 端口
- 标识文件
- 货运代理
关于私钥的说明
- 由于
~/.ssh/
中的私钥文件是可发现的,因此不必指定IdentityFile
- 如果使用ED25519密钥,请使用或转换为旧的PEM格式
- 例如
ssh-keygen -m PEM -t ed25519 ...
- 这是因为
paramiko
库不支持最新格式“rfc4716”
- 例如
配置示例
示例1:
[~/.ssh/config]
Host myserver
HostName myserver.example.com
User admin
Port 2222
IdentityFile ~/.ssh/id_rsa_myserver
ForwardAgent yes
Host *
User ubuntu
示例2:
[~/.ssh/config]
Host another-server
HostName 192.0.2.1
最小示例:
[~/.ssh/config]
# If you specify a FQDN / IP address, same login user, and discoverable private key,
# no configuration needed
另请参见上面的详细教程。
参数化运行
见examples/parameterized-notebook。
限制
- 由于jupyter笔记本对处理
stdin
有限制, 您可能需要更改一些服务器配置和命令,以避免interactive input。- 例如,使用公钥身份验证而不是密码,为sudo启用nopasswd,使用
expect
- 例如,使用公钥身份验证而不是密码,为sudo启用nopasswd,使用
- 一些shell变量不同于普通的交互式shell
- 例如
$?
,$$
- 例如
许可证
此软件是根据修改后的BSD许可证的条款发布的。
^来自wikimedia commons的{a5}在CC BY 3.0下获得许可。