GNU General Public License v3.0

项目介绍

artyom-poptsov/guile-ssh 是一个托管在 GitHub 上的开源项目,主要使用 C 编写,采用 GNU General Public License v3.0 许可证,目前获得 76 个 Star、13 次 Fork。

仓库全名
artyom-poptsov/guile-ssh
开源许可证
GNU General Public License v3.0
Star 数
76
Fork 数
13
未关闭 Issue
8

README 摘要

mode: org; -- [[./doc/logo-v2.png]] Guile-SSH is a library that provides access to the [[https://en.wikipedia.org/wiki/SecureShell][SSH protocol]] for programs written in [[https://www.gnu.org/software/guile/][GNU Guile]] interpreter. It is built upon the [[https://www.libssh.org/][libssh]] library. Features The API that is sufficient for building of standalone SSH clients and servers, or for embedding client/server…

完整内容见 GitHub 原始 README 或本页 。

常见问题

guile-ssh 用什么语言开发?

主要使用 C 编写,采用 GNU General Public License v3.0 许可证,目前有 76 个 Star。

guile-ssh 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 guile-ssh 的源码?

可以直接克隆仓库:git clone https://github.com/artyom-poptsov/guile-ssh.git,默认分支为 master;安装与运行步骤见仓库 README。

guile-ssh 最近还在维护吗?

仓库最近一次更新为 3 周前,当前有 8 个未关闭 Issue;Star 数为 76,可作为社区活跃度的参考。

关于

Guile-SSH is a library that provides access to the SSH protocol for GNU Guile programs.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
103
价值分
49
活跃状态
活跃

README

-- mode: org; --

[[./doc/logo-v2.png]]

Guile-SSH is a library that provides access to the [[https://en.wikipedia.org/wiki/Secure_Shell][SSH protocol]] for programs written in [[https://www.gnu.org/software/guile/][GNU Guile]] interpreter. It is built upon the [[https://www.libssh.org/][libssh]] library.

[[https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guile2.2.yml][https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guile2.2.yml/badge.svg]] [[https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guile3.0.yml][https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guile3.0.yml/badge.svg]] [[https://github.com/artyom-poptsov/guile-ssh/actions/workflows/fedora.yml][https://github.com/artyom-poptsov/guile-ssh/actions/workflows/fedora.yml/badge.svg]] [[https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guix.yml][https://github.com/artyom-poptsov/guile-ssh/actions/workflows/guix.yml/badge.svg]]

  • Features

    • The API that is sufficient for building of standalone SSH clients and servers, or for embedding client/server functionality in your lispy Scheme applications.
    • Several authentication methods are supported, including password authentication, public key and SSH agent authentication methods.
    • Key management procedures: you can make key pairs, read keys from files, get key hashes, get public keys from private keys etc. DSS (only when =–enable-dsa= option is passed to the =configure= script), RSA, RSA1 and ECDSA (by means of OpenSSL) are supported.
    • Port forwarding procedures and high-level API for creating of SSH tunnels.
    • Distributed forms (=dist-map=, =distribute=, …) that allow to spread the evaluation of Scheme code between remote hosts. Or you can just connect to a remote REPL from Scheme using =with-ssh= procedure and evaluate some expressions. No special server needed on the remote side, just an SSH daemon and GNU Guile installed!
    • SFTP client API allows you to read and write remote files, or do directory traversal over the SSH protocol right from the Scheme code.
    • Remote popen API that allows you to make either input, output or bidirectional pipes to remote processes.
    • Detailed documentation in Texinfo format with examples included, even more examples in =examples= directory.
  • License Guile-SSH is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Please see =COPYING= file for the terms of GNU General Public License.

    The logo (=doc/logo.svg=, =doc/logo-with-text.svg= and rasterised versions) is distributed under terms of [[https://creativecommons.org/licenses/by-sa/4.0/][Creative Commons Attribution-ShareAlike 4.0 International]].

  • Requirements

  • Contributing

You can use Guix to build Guile-SSH non-interactively, like so:

#+begin_src sh guix build -f guix.scm #+end_src

You can build a variant against a specific libssh version, as in this example:

#+begin_src sh guix build -L .guix/modules guile-ssh-with-libssh-0.8 #+end_src

Last, you can build the entire configuration matrix (several architectures, several libssh versions, several Guile versions) like so:

#+begin_src sh guix build -L .guix/modules -m .guix/manifest.scm #+end_src

The library can be installed by the following means:

Thanks for all the people who helped with packaging of Guile-SSH!

Also there is a [[https://hub.docker.com/r/avvp/debian-guile/][Docker image]] based on Debian GNU/Linux that contains the latest version of GNU Guile and Guile-SSH installed – give it a try!

For a basic explanation of the installation of the package, see the INSTALL file.

But to make the long story short, you can try run the following in the project directory – those commands will configure, build, check and install Guile-SSH in your system: #+BEGIN_EXAMPLE $ autoreconf -vif $ ./configure $ make $ make check $ make install #+END_EXAMPLE

Please note that you will need [[https://www.gnu.org/software/automake/][Automake]] 1.12 or later to run self-tests with =make check= (although the library itself can be built with older Automake version such as 1.11, just leave out the =make check= step).

important You probably want to call configure with the =–with-guilesitedir= option so that this package is installed in Guile’s default path. But, if you don’t know where your Guile site directory is, run =configure= without the option, and it will give you a suggestion.

  • Usage Please see the documentation in Info format for API documentation and usage examples – you can open it by typing =info guile-ssh= in the shell, or using =C-h i m guile-ssh RET= combo in Emacs. Also take a look on examples in the =examples= directory:
  • ssshd.scm – SSH server example.
  • sssh.scm – SSH client example.
  • echo/
    • client.scm – Echo client example.
    • server.scm – Echo server example.
  • rpc/
    • client.scm – A simple Guile-RPC client that makes an RPC call over a Guile-SSH tunnel.
    • server.scm – A simple Guile-RPC server.
  • rrepl.scm – Remote REPL example.
  • sscp.scm – Scheme secure copy.
  • pg-tunnel.scm – Connect to a PostgreSQL instance through an SSH tunnel.
  • uptop.scm – Uppercase =top=, through a remote pipe.

评论

暂无评论